MIT RACECAR projectについては以下を参照
※本記事は環境構築に関して残課題ありの状態で投稿しています
ROSのインストール
以下を参照してインストールする(今回はmelodicを使用)
必要なパッケージをインストール
sudo apt-get install -y ros-melodic-ros-control ros-melodic-ros-controllers
sudo apt-get install -y ros-melodic-teleop-twist-keyboard
racecar/racecar_gazebowをcloneしてcatkin_makeする
cd ~/catkin_ws/src
git clone https://github.com/mit-racecar/racecar
git clone https://github.com/mit-racecar/racecar_gazebo
cd ~/catkin_ws
catkin_make
roslaunchで起動する
$ roslaunch racecar_gazebo racecar_tunnel.launch
roslaunch racecar_gazebo racecar_tunnel.launchのログ
$ roslaunch racecar_gazebo racecar_tunnel.launch
WARNING: Could not change permissions for folder [/home/ubuntu/.ros/log/9d7d8348-daca-11ea-8017-d0374510daed], make sure that the parent folder has correct permissions.
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://ubuntu-ZBOX-EN72080V-EN72070V-EN52060V-EN51660T:46051/
SUMMARY
========
PARAMETERS
* /gazebo/enable_ros_network: True
* /racecar/joint_state_controller/publish_rate: 50
* /racecar/joint_state_controller/type: joint_state_contr...
* /racecar/left_front_wheel_velocity_controller/joint: left_front_wheel_...
* /racecar/left_front_wheel_velocity_controller/pid/d: 0.0
* /racecar/left_front_wheel_velocity_controller/pid/i: 0.0
* /racecar/left_front_wheel_velocity_controller/pid/i_clamp: 0.0
* /racecar/left_front_wheel_velocity_controller/pid/p: 0.5
* /racecar/left_front_wheel_velocity_controller/type: effort_controller...
* /racecar/left_rear_wheel_velocity_controller/joint: left_rear_wheel_j...
* /racecar/left_rear_wheel_velocity_controller/pid/d: 0.0
* /racecar/left_rear_wheel_velocity_controller/pid/i: 0.0
* /racecar/left_rear_wheel_velocity_controller/pid/i_clamp: 0.0
* /racecar/left_rear_wheel_velocity_controller/pid/p: 1.0
* /racecar/left_rear_wheel_velocity_controller/type: effort_controller...
* /racecar/left_steering_hinge_position_controller/joint: left_steering_hin...
* /racecar/left_steering_hinge_position_controller/pid/d: 0.5
* /racecar/left_steering_hinge_position_controller/pid/i: 0.0
* /racecar/left_steering_hinge_position_controller/pid/p: 1.0
* /racecar/left_steering_hinge_position_controller/type: effort_controller...
* /racecar/right_front_wheel_velocity_controller/joint: right_front_wheel...
* /racecar/right_front_wheel_velocity_controller/pid/d: 0.0
* /racecar/right_front_wheel_velocity_controller/pid/i: 0.0
* /racecar/right_front_wheel_velocity_controller/pid/i_clamp: 0.0
* /racecar/right_front_wheel_velocity_controller/pid/p: 0.5
* /racecar/right_front_wheel_velocity_controller/type: effort_controller...
* /racecar/right_rear_wheel_velocity_controller/joint: right_rear_wheel_...
* /racecar/right_rear_wheel_velocity_controller/pid/d: 0.0
* /racecar/right_rear_wheel_velocity_controller/pid/i: 0.0
* /racecar/right_rear_wheel_velocity_controller/pid/i_clamp: 0.0
* /racecar/right_rear_wheel_velocity_controller/pid/p: 1.0
* /racecar/right_rear_wheel_velocity_controller/type: effort_controller...
* /racecar/right_steering_hinge_position_controller/joint: right_steering_hi...
* /racecar/right_steering_hinge_position_controller/pid/d: 0.5
* /racecar/right_steering_hinge_position_controller/pid/i: 0.0
* /racecar/right_steering_hinge_position_controller/pid/p: 1.0
* /racecar/right_steering_hinge_position_controller/type: effort_controller...
* /robot_description: <?xml version="1....
* /rosdistro: melodic
* /rosversion: 1.14.6
* /use_sim_time: True
* /vesc/high_level/ackermann_cmd_mux/yaml_cfg_file: /home/ubuntu/catk...
* /vesc/low_level/ackermann_cmd_mux/yaml_cfg_file: /home/ubuntu/catk...
NODES
/
better_odom (topic_tools/relay)
gazebo (gazebo_ros/gzserver)
gazebo_gui (gazebo_ros/gzclient)
gazebo_odometry_node (racecar_gazebo/gazebo_odometry.py)
racecar_spawn (gazebo_ros/spawn_model)
robot_state_publisher (robot_state_publisher/robot_state_publisher)
servo_commands (racecar_control/servo_commands.py)
/racecar/
controller_manager (controller_manager/spawner)
/vesc/
mux_chainer (topic_tools/relay)
mux_topic_backward_compat_navigation (topic_tools/relay)
mux_topic_backward_compat_safety (topic_tools/relay)
mux_topic_backward_compat_teleop (topic_tools/relay)
zero_ackermann_cmd (rostopic/rostopic)
/vesc/high_level/
ackermann_cmd_mux (nodelet/nodelet)
ackermann_cmd_mux_nodelet_manager (nodelet/nodelet)
/vesc/low_level/
ackermann_cmd_mux (nodelet/nodelet)
ackermann_cmd_mux_nodelet_manager (nodelet/nodelet)
auto-starting new master
process[master]: started with pid [15777]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to 9d7d8348-daca-11ea-8017-d0374510daed
process[rosout-1]: started with pid [15788]
started core service [/rosout]
process[gazebo-2]: started with pid [15792]
process[gazebo_gui-3]: started with pid [15798]
process[racecar_spawn-4]: started with pid [15805]
process[racecar/controller_manager-5]: started with pid [15806]
process[robot_state_publisher-6]: started with pid [15807]
process[servo_commands-7]: started with pid [15808]
process[gazebo_odometry_node-8]: started with pid [15809]
process[vesc/mux_chainer-9]: started with pid [15810]
process[vesc/mux_topic_backward_compat_safety-10]: started with pid [15815]
process[vesc/mux_topic_backward_compat_teleop-11]: started with pid [15822]
process[vesc/mux_topic_backward_compat_navigation-12]: started with pid [15826]
process[vesc/zero_ackermann_cmd-13]: started with pid [15838]
process[vesc/high_level/ackermann_cmd_mux_nodelet_manager-14]: started with pid [15841]
process[vesc/high_level/ackermann_cmd_mux-15]: started with pid [15846]
process[vesc/low_level/ackermann_cmd_mux_nodelet_manager-16]: started with pid [15848]
process[vesc/low_level/ackermann_cmd_mux-17]: started with pid [15856]
process[better_odom-18]: started with pid [15866]
[INFO] [1597037436.149345, 0.000000]: Controller Spawner: Waiting for service controller_manager/load_controller
[ INFO] [1597037436.215815843]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1597037436.217577597]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
[ INFO] [1597037436.286770750]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1597037436.287820231]: waitForService: Service [/gazebo_gui/set_physics_properties] has not been advertised, waiting...
[INFO] [1597037436.536388, 0.000000]: Loading model XML from ros parameter robot_description
[INFO] [1597037436.542641, 0.000000]: Waiting for service /gazebo/spawn_urdf_model
[ INFO] [1597037437.875778219, 0.009000000]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[ INFO] [1597037437.889573530, 0.022000000]: Physics dynamic reconfigure ready.
[INFO] [1597037438.049080, 0.177000]: Calling service /gazebo/spawn_urdf_model
[ INFO] [1597037438.361489692, 0.196000000]: Laser Plugin: Using the 'robotNamespace' param: '/'
[ INFO] [1597037438.361528585, 0.196000000]: Starting Laser Plugin (ns = /)
[ INFO] [1597037438.362569385, 0.196000000]: Laser Plugin (ns = /) <tf_prefix_>, set to ""
[INFO] [1597037438.368144, 0.196000]: Spawn status: SpawnModel: Successfully spawned entity
[racecar_spawn-4] process has finished cleanly
log file: /home/ubuntu/.ros/log/9d7d8348-daca-11ea-8017-d0374510daed/racecar_spawn-4*.log
[ INFO] [1597037438.562772916, 0.196000000]: Camera Plugin: Using the 'robotNamespace' param: '/'
[ INFO] [1597037438.564509880, 0.196000000]: Camera Plugin (ns = /) <tf_prefix_>, set to ""
[ INFO] [1597037438.602762882, 0.196000000]: Loading gazebo_ros_control plugin
[ INFO] [1597037438.602855123, 0.196000000]: Starting gazebo_ros_control plugin in namespace: /racecar
[ INFO] [1597037438.603322704, 0.196000000]: gazebo_ros_control plugin is waiting for model URDF in parameter [/robot_description] on the ROS param server.
[ WARN] [1597037438.734590909, 0.196000000]: Deprecated syntax, please prepend 'hardware_interface/' to 'EffortJointInterface' within the <hardwareInterface> tag in joint 'left_rear_wheel_joint'.
[ WARN] [1597037438.735549436, 0.196000000]: Deprecated syntax, please prepend 'hardware_interface/' to 'EffortJointInterface' within the <hardwareInterface> tag in joint 'right_rear_wheel_joint'.
[ WARN] [1597037438.736209699, 0.196000000]: Deprecated syntax, please prepend 'hardware_interface/' to 'EffortJointInterface' within the <hardwareInterface> tag in joint 'left_steering_hinge_joint'.
[ WARN] [1597037438.736857599, 0.196000000]: Deprecated syntax, please prepend 'hardware_interface/' to 'EffortJointInterface' within the <hardwareInterface> tag in joint 'right_steering_hinge_joint'.
[ WARN] [1597037438.737560790, 0.196000000]: Deprecated syntax, please prepend 'hardware_interface/' to 'EffortJointInterface' within the <hardwareInterface> tag in joint 'left_front_wheel_joint'.
[ WARN] [1597037438.738244254, 0.196000000]: Deprecated syntax, please prepend 'hardware_interface/' to 'EffortJointInterface' within the <hardwareInterface> tag in joint 'right_front_wheel_joint'.
[ INFO] [1597037438.744977621, 0.196000000]: Loaded gazebo_ros_control.
[INFO] [1597037438.860348, 0.309000]: Controller Spawner: Waiting for service controller_manager/switch_controller
[INFO] [1597037438.862000, 0.311000]: Controller Spawner: Waiting for service controller_manager/unload_controller
[INFO] [1597037438.863777, 0.312000]: Loading controller: left_rear_wheel_velocity_controller
[INFO] [1597037438.884928, 0.334000]: Loading controller: right_rear_wheel_velocity_controller
[INFO] [1597037438.902997, 0.352000]: Loading controller: left_front_wheel_velocity_controller
[INFO] [1597037438.919809, 0.369000]: Loading controller: right_front_wheel_velocity_controller
[INFO] [1597037438.936849, 0.386000]: Loading controller: left_steering_hinge_position_controller
[INFO] [1597037438.956237, 0.402000]: Loading controller: right_steering_hinge_position_controller
[INFO] [1597037439.021377, 0.467000]: Loading controller: joint_state_controller
[INFO] [1597037439.027801, 0.473000]: Controller Spawner: Loaded controllers: left_rear_wheel_velocity_controller, right_rear_wheel_velocity_controller, left_front_wheel_velocity_controller, right_front_wheel_velocity_controller, left_steering_hinge_position_controller, right_steering_hinge_position_controller, joint_state_controller
[INFO] [1597037439.030727, 0.476000]: Started controllers: left_rear_wheel_velocity_controller, right_rear_wheel_velocity_controller, left_front_wheel_velocity_controller, right_front_wheel_velocity_controller, left_steering_hinge_position_controller, right_steering_hinge_position_controller, joint_state_controller
$ roslaunch racecar_gazebo racecar_tunnel.launch
WARNING: Could not change permissions for folder [/home/ubuntu/.ros/log/9d7d8348-daca-11ea-8017-d0374510daed], make sure that the parent folder has correct permissions.
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://ubuntu-ZBOX-EN72080V-EN72070V-EN52060V-EN51660T:46051/
SUMMARY
========
PARAMETERS
* /gazebo/enable_ros_network: True
* /racecar/joint_state_controller/publish_rate: 50
* /racecar/joint_state_controller/type: joint_state_contr...
* /racecar/left_front_wheel_velocity_controller/joint: left_front_wheel_...
* /racecar/left_front_wheel_velocity_controller/pid/d: 0.0
* /racecar/left_front_wheel_velocity_controller/pid/i: 0.0
* /racecar/left_front_wheel_velocity_controller/pid/i_clamp: 0.0
* /racecar/left_front_wheel_velocity_controller/pid/p: 0.5
* /racecar/left_front_wheel_velocity_controller/type: effort_controller...
* /racecar/left_rear_wheel_velocity_controller/joint: left_rear_wheel_j...
* /racecar/left_rear_wheel_velocity_controller/pid/d: 0.0
* /racecar/left_rear_wheel_velocity_controller/pid/i: 0.0
* /racecar/left_rear_wheel_velocity_controller/pid/i_clamp: 0.0
* /racecar/left_rear_wheel_velocity_controller/pid/p: 1.0
* /racecar/left_rear_wheel_velocity_controller/type: effort_controller...
* /racecar/left_steering_hinge_position_controller/joint: left_steering_hin...
* /racecar/left_steering_hinge_position_controller/pid/d: 0.5
* /racecar/left_steering_hinge_position_controller/pid/i: 0.0
* /racecar/left_steering_hinge_position_controller/pid/p: 1.0
* /racecar/left_steering_hinge_position_controller/type: effort_controller...
* /racecar/right_front_wheel_velocity_controller/joint: right_front_wheel...
* /racecar/right_front_wheel_velocity_controller/pid/d: 0.0
* /racecar/right_front_wheel_velocity_controller/pid/i: 0.0
* /racecar/right_front_wheel_velocity_controller/pid/i_clamp: 0.0
* /racecar/right_front_wheel_velocity_controller/pid/p: 0.5
* /racecar/right_front_wheel_velocity_controller/type: effort_controller...
* /racecar/right_rear_wheel_velocity_controller/joint: right_rear_wheel_...
* /racecar/right_rear_wheel_velocity_controller/pid/d: 0.0
* /racecar/right_rear_wheel_velocity_controller/pid/i: 0.0
* /racecar/right_rear_wheel_velocity_controller/pid/i_clamp: 0.0
* /racecar/right_rear_wheel_velocity_controller/pid/p: 1.0
* /racecar/right_rear_wheel_velocity_controller/type: effort_controller...
* /racecar/right_steering_hinge_position_controller/joint: right_steering_hi...
* /racecar/right_steering_hinge_position_controller/pid/d: 0.5
* /racecar/right_steering_hinge_position_controller/pid/i: 0.0
* /racecar/right_steering_hinge_position_controller/pid/p: 1.0
* /racecar/right_steering_hinge_position_controller/type: effort_controller...
* /robot_description: <?xml version="1....
* /rosdistro: melodic
* /rosversion: 1.14.6
* /use_sim_time: True
* /vesc/high_level/ackermann_cmd_mux/yaml_cfg_file: /home/ubuntu/catk...
* /vesc/low_level/ackermann_cmd_mux/yaml_cfg_file: /home/ubuntu/catk...
NODES
/
better_odom (topic_tools/relay)
gazebo (gazebo_ros/gzserver)
gazebo_gui (gazebo_ros/gzclient)
gazebo_odometry_node (racecar_gazebo/gazebo_odometry.py)
racecar_spawn (gazebo_ros/spawn_model)
robot_state_publisher (robot_state_publisher/robot_state_publisher)
servo_commands (racecar_control/servo_commands.py)
/racecar/
controller_manager (controller_manager/spawner)
/vesc/
mux_chainer (topic_tools/relay)
mux_topic_backward_compat_navigation (topic_tools/relay)
mux_topic_backward_compat_safety (topic_tools/relay)
mux_topic_backward_compat_teleop (topic_tools/relay)
zero_ackermann_cmd (rostopic/rostopic)
/vesc/high_level/
ackermann_cmd_mux (nodelet/nodelet)
ackermann_cmd_mux_nodelet_manager (nodelet/nodelet)
/vesc/low_level/
ackermann_cmd_mux (nodelet/nodelet)
ackermann_cmd_mux_nodelet_manager (nodelet/nodelet)
auto-starting new master
process[master]: started with pid [15777]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to 9d7d8348-daca-11ea-8017-d0374510daed
process[rosout-1]: started with pid [15788]
started core service [/rosout]
process[gazebo-2]: started with pid [15792]
process[gazebo_gui-3]: started with pid [15798]
process[racecar_spawn-4]: started with pid [15805]
process[racecar/controller_manager-5]: started with pid [15806]
process[robot_state_publisher-6]: started with pid [15807]
process[servo_commands-7]: started with pid [15808]
process[gazebo_odometry_node-8]: started with pid [15809]
process[vesc/mux_chainer-9]: started with pid [15810]
process[vesc/mux_topic_backward_compat_safety-10]: started with pid [15815]
process[vesc/mux_topic_backward_compat_teleop-11]: started with pid [15822]
process[vesc/mux_topic_backward_compat_navigation-12]: started with pid [15826]
process[vesc/zero_ackermann_cmd-13]: started with pid [15838]
process[vesc/high_level/ackermann_cmd_mux_nodelet_manager-14]: started with pid [15841]
process[vesc/high_level/ackermann_cmd_mux-15]: started with pid [15846]
process[vesc/low_level/ackermann_cmd_mux_nodelet_manager-16]: started with pid [15848]
process[vesc/low_level/ackermann_cmd_mux-17]: started with pid [15856]
process[better_odom-18]: started with pid [15866]
[INFO] [1597037436.149345, 0.000000]: Controller Spawner: Waiting for service controller_manager/load_controller
[ INFO] [1597037436.215815843]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1597037436.217577597]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
[ INFO] [1597037436.286770750]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1597037436.287820231]: waitForService: Service [/gazebo_gui/set_physics_properties] has not been advertised, waiting...
[INFO] [1597037436.536388, 0.000000]: Loading model XML from ros parameter robot_description
[INFO] [1597037436.542641, 0.000000]: Waiting for service /gazebo/spawn_urdf_model
[ INFO] [1597037437.875778219, 0.009000000]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[ INFO] [1597037437.889573530, 0.022000000]: Physics dynamic reconfigure ready.
[INFO] [1597037438.049080, 0.177000]: Calling service /gazebo/spawn_urdf_model
[ INFO] [1597037438.361489692, 0.196000000]: Laser Plugin: Using the 'robotNamespace' param: '/'
[ INFO] [1597037438.361528585, 0.196000000]: Starting Laser Plugin (ns = /)
[ INFO] [1597037438.362569385, 0.196000000]: Laser Plugin (ns = /) <tf_prefix_>, set to ""
[INFO] [1597037438.368144, 0.196000]: Spawn status: SpawnModel: Successfully spawned entity
[racecar_spawn-4] process has finished cleanly
log file: /home/ubuntu/.ros/log/9d7d8348-daca-11ea-8017-d0374510daed/racecar_spawn-4*.log
[ INFO] [1597037438.562772916, 0.196000000]: Camera Plugin: Using the 'robotNamespace' param: '/'
[ INFO] [1597037438.564509880, 0.196000000]: Camera Plugin (ns = /) <tf_prefix_>, set to ""
[ INFO] [1597037438.602762882, 0.196000000]: Loading gazebo_ros_control plugin
[ INFO] [1597037438.602855123, 0.196000000]: Starting gazebo_ros_control plugin in namespace: /racecar
[ INFO] [1597037438.603322704, 0.196000000]: gazebo_ros_control plugin is waiting for model URDF in parameter [/robot_description] on the ROS param server.
[ WARN] [1597037438.734590909, 0.196000000]: Deprecated syntax, please prepend 'hardware_interface/' to 'EffortJointInterface' within the <hardwareInterface> tag in joint 'left_rear_wheel_joint'.
[ WARN] [1597037438.735549436, 0.196000000]: Deprecated syntax, please prepend 'hardware_interface/' to 'EffortJointInterface' within the <hardwareInterface> tag in joint 'right_rear_wheel_joint'.
[ WARN] [1597037438.736209699, 0.196000000]: Deprecated syntax, please prepend 'hardware_interface/' to 'EffortJointInterface' within the <hardwareInterface> tag in joint 'left_steering_hinge_joint'.
[ WARN] [1597037438.736857599, 0.196000000]: Deprecated syntax, please prepend 'hardware_interface/' to 'EffortJointInterface' within the <hardwareInterface> tag in joint 'right_steering_hinge_joint'.
[ WARN] [1597037438.737560790, 0.196000000]: Deprecated syntax, please prepend 'hardware_interface/' to 'EffortJointInterface' within the <hardwareInterface> tag in joint 'left_front_wheel_joint'.
[ WARN] [1597037438.738244254, 0.196000000]: Deprecated syntax, please prepend 'hardware_interface/' to 'EffortJointInterface' within the <hardwareInterface> tag in joint 'right_front_wheel_joint'.
[ INFO] [1597037438.744977621, 0.196000000]: Loaded gazebo_ros_control.
[INFO] [1597037438.860348, 0.309000]: Controller Spawner: Waiting for service controller_manager/switch_controller
[INFO] [1597037438.862000, 0.311000]: Controller Spawner: Waiting for service controller_manager/unload_controller
[INFO] [1597037438.863777, 0.312000]: Loading controller: left_rear_wheel_velocity_controller
[INFO] [1597037438.884928, 0.334000]: Loading controller: right_rear_wheel_velocity_controller
[INFO] [1597037438.902997, 0.352000]: Loading controller: left_front_wheel_velocity_controller
[INFO] [1597037438.919809, 0.369000]: Loading controller: right_front_wheel_velocity_controller
[INFO] [1597037438.936849, 0.386000]: Loading controller: left_steering_hinge_position_controller
[INFO] [1597037438.956237, 0.402000]: Loading controller: right_steering_hinge_position_controller
[INFO] [1597037439.021377, 0.467000]: Loading controller: joint_state_controller
[INFO] [1597037439.027801, 0.473000]: Controller Spawner: Loaded controllers: left_rear_wheel_velocity_controller, right_rear_wheel_velocity_controller, left_front_wheel_velocity_controller, right_front_wheel_velocity_controller, left_steering_hinge_position_controller, right_steering_hinge_position_controller, joint_state_controller
[INFO] [1597037439.030727, 0.476000]: Started controllers: left_rear_wheel_velocity_controller, right_rear_wheel_velocity_controller, left_front_wheel_velocity_controller, right_front_wheel_velocity_controller, left_steering_hinge_position_controller, right_steering_hinge_position_controller, joint_state_controller
課題
以下の手順が分かっていない。(もしご存知の方がおられればご教授頂けると幸いです)
・単純なトピック通信で車両を動かす方法(teleopなど)
・機械学習による制御方法
以下が参考になるかも?
racecar-j-ros-teleoperation
racecar-j-programming-the-electronic-speed-controller
racecar-j-robot-base-kit
備考
$ roslaunch racecar_gazebo racecar_tunnel.launch
RLException: [racecar_tunnel.launch] is neither a launch file in package [racecar_gazebo] nor is [racecar_gazebo] a launch file name
The traceback for the exception was written to the log file
以下のリポジトリが~/catkin_ws/src以下にないときに出る。git cloneで持ってくると解決
cd ~/catkin_ws/src
git clone https://github.com/mit-racecar/racecar
git clone https://github.com/mit-racecar/racecar_gazebo
cd ~/catkin_ws
catkin_make
参考
MIT RACECAR project
racecar
racecar_gazebo
Can not launch the simulator#10
7_racecarbasics.pdf
Understanding ackermann_cmd_mux
RACECAR Tutorial [ICRA '19]
Ubuntu install of ROS Melodic