gggggraziegrazie

graizegrazieさんのやったこと、学んだことを記録する雑記帳です

ROS

nodelet用に定義したクラスを使ってnodeを立ち上げる

ROSで処理を書く際、ノード間でのデータのやり取りの効率化のため、殆どnodeletとしてクラスを作ることが多いんじゃないかと思います。ただそうすると、そのクラスのメンバ関数をテストをしようとすると他のノードも立ち上がったりして面倒ですよね。じゃあn…

ROSにおけるodomフレームの役割

ROS

Navigaitonパッケージのamclを使うと、odomフレームがちょろちょろ動くのが確認できると思います。どうしてフレームが動くんだろうと不思議に思っていたので、調べてみました。推測も入っていますが、下記に調べたことなどを纏めます。ROSの下記を見ると、 m…

ROSでXX_msgs::YY::ConstPtrをXX_msgs::YYに変換する方法

例えばsensor_msgs::LaserScan::ConstPtrをsensor_msgs::LaserScanに変換したい時があるかと思います。sensor_msgs::LaserScan::ConstPtrの実体は、boost::shared_ptrになります。そのため、 boost::shared_ptr<sensor_msgs::LaserScan> laserscan_ptr = boost::const_pointer_cast<sensor_msgs::LaserScan>(l</sensor_msgs::laserscan></sensor_msgs::laserscan>…

コマンドライン中で指定したパラメータ名をノード中で取得する方法(C++)

結論から言うと、2種類の方法があります。 ros::names::remap : 返り値としてremapされたパラメータ名が取得できます。 resolveName : 返り値としてremapされたパラメータ名が取得できます。第二引数でremapが成功したかをboolで取得できます。 ros::names:…

ROSにおけるCMakeLists.txtの書き方

ROS

逐次わかったこと、気づいたことを追記していきます。catkin_package( # ここには自ら(このCMakeLists.txtが含まれているROS Packageのことを書きます INCLUDE_DIRS # headerファイルを探しに行く時のルートディレクトリを記載します → 1)へ LIBRARIES # ad…

ROSでパラメータを登録する方法

ロボット業界でよく使われるフレームワークとして、ROS[1]というものがあります。ROSでは、生成するプロセス(ROS的にはノード)毎にパラメータを設定することが出来ます。先日そのパラメータを使う機会がありましたので、パラメータの設定方法を書きます。な…