MIT RACECAR projectのシミュレータ環境を起動する

MIT RACECAR projectについては以下を参照
> [MIT RACECAR project](https://mit-racecar.github.io/)

※本記事は環境構築に関して残課題ありの状態で投稿しています

# ROSのインストール

以下を参照してインストールする（今回はmelodicを使用）
> [Ubuntu install of ROS Melodic](http://wiki.ros.org/melodic/Installation/Ubuntu)

# 必要なパッケージをインストール

```
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
```

<details><summary>roslaunch racecar_gazebo racecar_tunnel.launchのログ</summary><div>

```
$ 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
```

</div></details>

以下のように起動すればOK
![Screenshot_racecar2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/344880/b1e9f3e8-f7be-1b87-6ce3-9599afcef252.png)

# 課題
以下の手順が分かっていない。（もしご存知の方がおられればご教授頂けると幸いです）
・単純なトピック通信で車両を動かす方法（teleopなど）
・機械学習による制御方法

以下が参考になるかも？
[racecar-j-ros-teleoperation](https://www.jetsonhacks.com/2018/08/19/racecar-j-ros-teleoperation/)
[racecar-j-programming-the-electronic-speed-controller](https://www.jetsonhacks.com/2018/02/13/racecar-j-programming-the-electronic-speed-controller/)
[racecar-j-robot-base-kit](https://racecarj.com/products/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](https://mit-racecar.github.io/)
[racecar](https://github.com/mit-racecar/racecar)
[racecar_gazebo](https://github.com/mit-racecar/racecar_gazebo)
[Can not launch the simulator#10 ](https://github.com/mit-racecar/racecar_gazebo/issues/10)
[7_racecarbasics.pdf](https://lchsracecar.weebly.com/uploads/5/4/6/4/54642095/7_racecarbasics.pdf)
[Understanding ackermann_cmd_mux](https://github.com/mit-racecar/racecar/issues/12)
[RACECAR Tutorial [ICRA '19]](https://mit-racecar.github.io/icra2019-workshop/lab-wall-follow-hardware)
[Ubuntu install of ROS Melodic](http://wiki.ros.org/melodic/Installation/Ubuntu)