LIFE LOG(ここにはあなたのブログ名)

あつあつ備忘録

ソフトやハード、時にはメカの備忘録をまとめていきます

ROS

【ROS】urdfでparentとchildの関係性を調べる

wiki.ros.org こちらを見ながら進めていった。 myfirst.urdf <robot name="myfirst"> <link name="base_link"> <visual> <geometry> <cylinder length="0.6" radius="0.2"/> </geometry> </visual> </link> </robot> $ roslaunch urdf_tutorial display.launch model:=myfirst.urdf lengthはz軸の長さ、radiusは半径でy軸。 03-o…

【ROS】tfを用いた座標変換

画像元 tfとは 座標系管理システム ROSでは順運動学の問題にtfを使用している tfの特徴 時間動機ができる 分散システムが使える rvizとの連携が強力 以下のようなものを作る場合には必須 自立移動ロボット 複数の関節を持つロボットアーム 3次元物体の認識プ…

【ROS】rviz・rqt_plot

画像元 rviz ROSの可視化といえばrviz $ rosrun rviz rvizで起動 Turtlebotのシミュレータを使用してみる $ sudo apt-get install -y ros-kinetic-turtlebot-gazebo $ source ~/.bashrc $ roslaunch turtlebot_gazebo turtlebot_world.launch $ roslaunch tu…

【ROS】pythonライブラリの作成

画像元 ライブラリを置くための準備 ROSではpythonのライブラリを「パッケージ名/src/パッケージ名」におく 前回の記事で作ったbumper_action.pyを移動する $ mkdir -p src/ros_start $ cp scripts/bumper_action.py src/ros_start/ディレクトリをライブラリ…

【ROS】Actionlibで時間のかかる処理を実行

画像元 最初にこれまでのおさらい TopocのPublisherとSubscriberは、非同期のデータフロー Serviseは同期通信 Actionlibは、どの司令に対する結果なのかや、実行中のフィードバックを返すことができる 例えば、自立移動の命令を送り、移動が終わった時に結果…

【ROS】Topic/Serviceの作成

画像元 独自のService型の製作 外部プログラムから速度(linear.xとangular.z)を指定して動かす 指定できる速度の値の範囲が決まっており、それ以上の速度は無視する 速度がセットできたか、無視されたかわかる $ roscd ros_start $ mkdir srv $ vi srv/Set…

【ROS】ServiceServerとServiceClientを作る

画像元 ServiceServerの作成 #!/usr/bin/env python import rospy from std_srvs.srv import Empty from std_srvs.srv import EmptyResponse def handle_service( req ): rospy.loginfo( 'called!' ) return EmptyResponse() def service_server(): rospy.in…

【ROS】kobukiでバンパーに反応するようにする・プログラムを他のロボットに使用

画像元前回 atsuyakoike.hatenablog.com $ roslaunch kobuki_gazebo kobuki_playground.launch この後にrostopic listでトピックを確認します。 $ rostopic list /clock /gazebo/link_states /gazebo/model_states /gazebo/parameter_descriptions /gazebo/p…

【ROS】シミュレータでロボット駆動

画像元 $ sudo apt-get install -y ros-kinetic-kobuki-gazebo $ roslaunch kobuki_gazebo kobuki_playground.launch $ vi vel_publisher.py#!/usr/bin/env python import rospy from geometry_msgs.msg import Twist #Used for robot speed command rospy.i…

【ROS】launchファイルの作成

画像元 $ roscd ros_start $ mkdir launch $ vi launch/chat.launch<launch> <node pkg="ros_start" name="talker" type="talker.py"/> <node pkg="ros_start" name="listener" type="listener.py"/> </launch> launchファイルはxmlで記述。 nodeタグは左から ・パッケージ名 ・ノード名 ・実行ファイル名ROSの管理上は実行ファイル名ではなく、ノード名で管理される。 $ roslaunch ros_start c…

【ROS】PublisherとSubscriberの作成

画像元 Publisherの作成 $ roscd ros_start $ mkdir scripts $ cd scripts/ $ vi talker.py#!/usr/bin/env python import rospy from std_msgs.msg import String rospy.init_node('talker') #node name # chatter : name # String : std_msg Topic [Publish…

【ROS】ワークスペースとパッケージの作成

画像元 ワークスペースの作成 以下はビルドシステムのワークスペースを作るコマンド。 1度実行すれば今後は実行する必要がない $ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws/src/ $ catkin_init_workspace Creating symlink "/home/atsuya/caikin_ws/src/CM…

ROSでHelloWorld

画像元 $ vi HelloWorld.py#!/usr/bin/env python import rospy rospy.init_node('helloworld_node') #set node name rospy.loginfo('Hello world') #set output Charactor String rospy.spin() #loop roscoreが立上がっていなければ立上げてください。 $ py…

【Ubuntu16.04】ROS環境構築

画像元以下にROSの環境構築のコマンドを記述します。 $ sudo apt install git $ git clone https://github.com/ryuichiueda/ros_setup_scripts_Ubuntu16.04_desktop $ cd ros_setup_scripts_Ubuntu16.04_desktop/ $ ./step0.bash $ ./step1.bash $ source ~/…

ROSの用語

画像元 Node 1つのプロセス名 Message 通信で受け渡されるデータの型 Master Node同士が通信するためのプロセス $ roscore で起動 Topic Nodeが送受信するデータ 非同期通信 Service Nodeが送受信するデータ 同期通信 Parameter ROSを使うと様々なロボットに…