このリポジトリはypspurのROS & ROS 2ラッパです.
ステート:devel
cmd_vel
(geometry_msgs/Twist)- joy_conやNav2 controller serverなどから生成されるgeometry_msgs/Twist形式のトピックです.
サブスクライブしたこのトピックを,速度指令としてyppsurへ送信します.
- joy_conやNav2 controller serverなどから生成されるgeometry_msgs/Twist形式のトピックです.
odom
(nav_msgs/Odometry)-
ロボットの移動量から求めた,ホイールオドメトリを提供します.現在は2つの計算方式が選択できます.
1.ypspurの関数を利用する方法
- ypspurが提供する現在位置取得コマンドを用いて,オドメトリを計算します.
エンコーダの値などの実測値を用いるため,手押しした場合でもオドメトリを取得することが可能です.
2.cmd_velから計算する方法
- サブスクライブしたcmd_velを用いて,オドメトリを計算します.
エンコーダの値を用いず,指令値から直接計算するため,正確ではない計算方法です.
- ypspurが提供する現在位置取得コマンドを用いて,オドメトリを計算します.
-
tf
(tf/tfMessage)- odomからロボットのbese_frame_idへのtfを提供します.
例:odom → base_footprint
- odomからロボットのbese_frame_idへのtfを提供します.
joint_states
(sensor_msgs/JointState)- ypspurから取得した,左右輪の角度,角速度を提供します.
odom_frame_id
(string default: odom)- odomトピック,tfトピックで用いるオドメトリ座標系のフレームIDを設定します
base_frame_id
(string default: base_footprint)- odomトピック,tfトピックで用いるロボットの基準フレームIDを設定します
base_footprintやbase_linkなどを設定してください
- odomトピック,tfトピックで用いるロボットの基準フレームIDを設定します
Hz
(int default:100)- ノードのループ周期を設定します.
left_wheel_joint
(string default: left_wheel_joint)- joint_statesトピックで使用する左車輪の名前を設定します
right_wheel_joint
(string default: right_wheel_joint)- joint_statesトピックで使用する右車輪の名前を設定します
liner_vel_lim
(double default: 1.5)- ロボットの速度の上限を設定します.
config上で設定したypspurのparamと同じ値にすることを推奨します.
- ロボットの速度の上限を設定します.
liner_accel_lim
(double default: 1.5)- ロボットの加速度の上限を設定します.
config上で設定したypspurのparamと同じ値にすることを推奨します.
- ロボットの加速度の上限を設定します.
angular_vel_lim
(double default: 3.14)- ロボットの角速度の上限を設定します.
config上で設定したypspurのparamと同じ値にすることを推奨します.
- ロボットの角速度の上限を設定します.
angular_accel_lim
(double default: 3.14)- ロボットの角加速度の上限を設定します.
config上で設定したypspurのparamと同じ値にすることを推奨します.
- ロボットの角加速度の上限を設定します.
calculate_odom_from_ypspur
(bool default: true)- odomの計算方法を設定します
- true: ypspurの関数と実測値を用いて,odomを計算します
- false: cmd_velからodomを計算します
- odomの計算方法を設定します
git clone https://github.com/haruyama8940/icart_mini_driver
git clone https://github.com/openspur/yp-spur
git clone https://github.com/ros2/teleop_twist_joy
cd install_your_workspace
colcon build --symlink-install
ros2 launch icart_mini_driver icart_mini_bringup_launch.py
- odom,tf,joint_stateではモータの取り付けの向きによって,座標を調整する必要があります. rvizなどで可視化しながら,進行方向と一致するように調整してください. (後にパラメータ化します)
- scripts内に存在するypspur_coordinator_bridgeに関して,接続しているデバイス(ttyACM0 or icart-mini)を適宜選択する必要があります.