ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

Cコンパイラを作りたい

去年から低レイヤーのためのCPU入門でコツコツとCコンパイラを作ってました。 www.sigbus.info natsutan.hatenablog.com いったん本の形になっているところまでやってみて仕切り直したくなった。 去年からやったことはgithubのCソース見てRustに移植している…

詳解3次元点群処理

貴重な点群関係の書籍ということで、発売と同時に買ってちょっとずつ読みながら最後まで読みました。 www.kspub.co.jp どんな本 点群についてPythonとOpen3Dというライブラリを使って、基本的な操作やアルゴリズムを学びます。 最後の方は最近のトピックとし…

PCLで点群のクラスタリング

詳解3次元点群処理に点群の距離を使ったセグメンテーション(クラスタリング)が載っていたのでPCLでやってみました。 www.kspub.co.jp 基本的にはここのサンプルでOK。 pcl.readthedocs.io このサンプルは、最初に大きな面を取り除いています。テーブルの…

RISC-V のレジスタ

The RISC-V Reader www.amazon.co.jp Figure3.2から Register ABI Name Description Preserved across call x0 zero Hard-wired zero — x1 ra Return address No x2 sp Stack pointer Yes x3 gp Global pointer — x4 tp Thread pointer — x5 t0 Temporary / …

PCLでRANSACを使ったプリミティブ検出

詳解三次元点群処理にRANSACを使ったプリミティブ検出が載っていたのでPCLで試してみました。 www.kspub.co.jp pcl::SACSegmentation を使うと簡単にプリミティブの検出ができます。 注意点としては、本に載っているデータ(3dpcp_book_codes/data/tabletop_…

CloudCompareを使って回転行列の効果を確認する

点群のアルゴリズムを使って、回転行列を求めた後、それがどう点群に影響するのか簡単に調べたいですよね。 プログラム書くのも面倒だったり、誰かにいろいろ試してもらって結果だけ知りたいとか。 そんなときに、CloudCompareが使えます。今日知りました。 …

PCLでICP registration

詳解三次元点群処理にICP(Iterative Closest Points)が載っていたのでPCLで試してみました。 www.kspub.co.jp この画像のようにずれている点群のずれの値を求めます。 はまったところとして、PCLのIterativeClosestPointは、点群の中にNanがあるとこのような…

PCLでKdtree

詳解三次元点群処理にkdtreeが載っていたのでPCLで試してみました。 www.kspub.co.jp Kdtreeは点群を大きくツリー状のグリッドに分け、2段階で近傍点を探します。詳細は本を見て下さい。 #include <pcl/point_cloud.h> #include <pcl/common/io.h> #include <pcl/kdtree/kdtree_flann.h> #include <pcl/io/ply_io.h> #include <iostream> #include <vector> #incl</vector></iostream></pcl/io/ply_io.h></pcl/kdtree/kdtree_flann.h></pcl/common/io.h></pcl/point_cloud.h>…

Ubuntu + Rider + F#の環境構築

F#

dotnetの移行期のせいか、簡単にはいかず手こずったのでメモ。 しばらくすればRiderがMSオフィシャルな方法に追従すると思う。 入っているdotnet環境を削除する。 sudo apt remove dotnet* sudo apt remove aspnetcore* ここのOption 1でインストールする。 …

PCLでHarris3D

詳解三次元点群処理に特徴点検出の一つHarri3Dが載っていたのでPCLで動かしてみました。 www.kspub.co.jp ほぼほぼ、サンプルのままです。 // // Created by natu on 2023/01/18. // #include <string> #include <pcl/keypoints/harris_3d.h> #include <pcl/io/ply_io.h> //https://github.com/PointCloudLibrary/</pcl/io/ply_io.h></pcl/keypoints/harris_3d.h></string>…

点群の法線ベクトルと主成分分析

詳解三次元点群処理に、法線ベクトルの求め方にPCA(主成分分析)を使うと書いてあり、少し驚いたので整理しました。 www.kspub.co.jp 点群における法線ベクトルとは 計測した点群のある点について、周辺の点群から面を推定しその面に対して垂直なベクトルの…

[試して理解]Linuxのしくみ ―実験と図解で学ぶOS、仮想マシン、コンテナの基礎知識【増補改訂版】

[試して理解]Linuxのしくみ ―実験と図解で学ぶOS、仮想マシン、コンテナの基礎知識【増補改訂版】を読みました。 www.amazon.co.jp 内容はLinux kernel+ハードウェアの低レイヤーよりの技術紹介です。全体的に図がわかりやすいのと効果を測定するためのコ…

点群の外れ値除去

詳解 3次元点群処理にOpen3Dでの外れ値除去が載っていたのでPCLでもやってみた。 www.kspub.co.jp StatisticalOutlierRemovalのサンプル通りで動く。 #include <string> #include <pcl/io/ply_io.h> #include <pcl/point_types.h> #include <pcl/filters/statistical_outlier_removal.h> int main() { const std::string original_file = "/home/natu/</pcl/filters/statistical_outlier_removal.h></pcl/point_types.h></pcl/io/ply_io.h></string>…

低レイヤを知りたい人のためのCコンパイラ作成入門をやってみた

低レイヤを知りたい人のためのCコンパイラ作成入門を3ヶ月くらいかけてやってみた。 目的はおもちゃCコンパイラを作って、最適化の実装をいろいろ試したかったのだけど全然そこまで行かず。 www.sigbus.info C言語で外部ライブラリなどを使わず一からCコンパ…

ゼロからのOS自作入門 10日目

OS

ほぼほぼ写経で10日目まできました。 10日目でWindowsがマウスで移動できるようになりました。実機で動かして見たくなり、手持ちのonemix 2sでブートさせてみました。 結果は画面が横向きで、マウスは反応せず。 マウスが動かないのは残念だけどしょうがない…

低レイヤを知りたい人のためのCコンパイラ作成入門の多次元配列

低レイヤを知りたい人のためのCコンパイラ作成入門を、Rustでコツコツとやっている。 www.sigbus.info 今まで苦労しながらもgithubのソースを見ながらまっすぐに来れたが、二次元配列の所で躓いたので整理してみた。 動かしたいソース まだここまでは動かな…

点群のボクセル化

仕事で点群を使っているのでまとまった時間があるときに読もうとしている。 www.kspub.co.jp まずはボクセル化から。点群を減らすよりは、均一に並べるために使った事が多い。 PCLで同じように書いてみる。 #include <string> #include <pcl/io/ply_io.h> #include <pcl/point_types.h> #include <pcl/filters/voxel_grid.h> int mai</pcl/filters/voxel_grid.h></pcl/point_types.h></pcl/io/ply_io.h></string>…

リーダーの作法

リーダーの作法を読みました。 www.amazon.co.jp Netscape、Apple、Slackで活躍した人が、リーダーとして記憶に残っているエピソードを30個まとめてあります。 帯に書いてある「リーダシップの極意」は言い過ぎだが、人によってはいくつか参考になる所がある…

ONNXのproducer_versionを設定する

メモ model = onnx.helper.make_model(model.graph, producer_version="123")

限りある時間の使い方

限りある時間の使い方読みました。 www.amazon.co.jp 帯のひろゆき絶賛が気に入らないですが、中身はちゃんとした本でした。 筆者が時間管理術マニアな事もあり、GTDとかポロドーモが好きな人にはぐっとくるネタが入っています。 本の内容は今までの時間管理…

Pytorchによる物体検出

Pytorchによる物体検出を読みました。 www.amazon.co.jp 仕事でPytorchをコピペで動かすことが多く、ちゃんとPytorchの勉強をしようと思って昔買ってあった本を取り出して読みました。読むタイミングが良かったのか、結構知りたかったことが書いてありました…

Rust+Clion+WSL2のメモ

Windows+WSL2環境で、Clionを使ってRustのデバッグをするときのメモ。 ClionはWindowsにインストーする。 cargo new はWindows上で行う。 Clionは、Windows上のディレクトリを開く Run onはLocal machine, working directoryはWindowsのパスを選択(図1) Se…

Lisp interpreter in rust

最近、中国語の勉強ばかりしていたので、リハビリがてらRustでLisp処理系を作る本を買ってみました。 www.amazon.co.jp 多分、本の内容もここにある気がして、買わなくても良かったのではと思うが筆者にお金が入るならOK。 github.com SICPにのっているよう…

ROSでAction serverのコンパイルが通るところまで

A Systematic Approach to Learning Robot Programming with ROS を手を動かしながら読んでいます。 www.amazon.co.jp 公式チュートリアルの方が良い気がしますが、行けるところまで行こう。 action serverを作るための手順が苦労しわりに直ぐ忘れそうなので…

ゼロから作るDeep Learning④

ゼロから作るDeep Learning④が良かったので紹介します。 www.oreilly.co.jp 本の紹介文に「読者はコードを通してハッとする気づきを数多く得られるでしょう。」とある通り、Pythonのコードを見ながらなるほどと思うところが沢山ありました。 内容 ①~③はほぼ…

Modern Robotics: Mechanics, Planning, and Control

CourseraのModern Robotics: Mechanics, Planning, and Control Specializationを終えました。 www.coursera.org 一応、これの続きです。 natsutan.hatenablog.com どんなコース 4週×6コースで半年かけて、ロボティクスの数学を学ぶコースです。 教科書はこ…

Rustでthe trait bound `ImageBuffer<Rgb<u8>, Vec<u8>>: image::image::GenericImage` is not satisfied

Rustでimageprocを使って画像処理に挑戦したときにはまったのでメモ。 ソースはこんな感じで、ファイルを開いてちょっと画像処理に挑戦してみました。 let mut img_work = image::open(input_image_path).unwrap().to_rgb8(); draw_filled_circle_mut(&mut i…

超初級から話せる中国語声出しレッスン

90日完走したので報告。 www.amazon.co.jp 忙しくて中国語の勉強時間は取れないけど、勉強は止めたくないな人にお勧めです。 内容は1日3文の短い中国語を聞いたり読んだり書いたりする本です。5日間のテキストと、2日間の復習で構成されています。それを90日…

Modern Robotics: Mechanics, Planning, and Control Specialization

去年から仕事でロボティクスに関わるようになり、いつまでも素人では駄目だと思いCourseraのコースで勉強することにしました。 www.coursera.org 全部で6コースあり、難易度が中級で結構ヘビーです。 動画は短く、勉強の大半は先生が書いた教科書を読んで勉…

Modern Robotics: Mechanics, Planning, and ControlのBodyヤコビアン

教科書から分かったところだけをまとめています。 教科書はこの本です。 www.amazon.co.jp 今回はBody Jacobian この記事のSpaceヤコビアンを置き換えるだけ。 natsutan.hatenablog.com に対応するのがこの式になります。 ここから を使って最後はこう。 エ…