diff --git a/.travis.yml b/.travis.yml
index 3c9951ea..3efada3a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,36 +1,27 @@
-# This config file for Travis CI utilizes ros-industrial/industrial_ci package.
-# For more info for the package, see https://github.com/ros-industrial/industrial_ci/blob/master/README.rst
-
-sudo: required
-dist: trusty
services:
- docker
-language: generic
-python:
- - "2.7"
-compiler:
- - gcc
+
+language:
+ - none
+
notifications:
email:
on_success: change
on_failure: always
recipients:
- pyo@robotis.com
-env:
- matrix:
- - ROS_DISTRO=kinetic ROS_REPO=ros-shadow-fixed UPSTREAM_WORKSPACE=debian OS_NAME=ubuntu OS_CODE_NAME=xenial
- - ROS_DISTRO=melodic ROS_REPO=ros-shadow-fixed UPSTREAM_WORKSPACE=debian OS_NAME=ubuntu OS_CODE_NAME=bionic
- - ROS_DISTRO=melodic ROS_REPO=ros-shadow-fixed UPSTREAM_WORKSPACE=debian OS_NAME=debian OS_CODE_NAME=stretch
-matrix:
- allow_failures:
- - env: ROS_DISTRO=melodic ROS_REPO=ros-shadow-fixed UPSTREAM_WORKSPACE=debian OS_NAME=ubuntu OS_CODE_NAME=bionic
- - env: ROS_DISTRO=melodic ROS_REPO=ros-shadow-fixed UPSTREAM_WORKSPACE=debian OS_NAME=debian OS_CODE_NAME=stretch
+ - thlim@robotis.com
+
branches:
only:
- - master
- - develop
+ - ros2
+ - ros2-devel
+ - dashing-devel
+
install:
- - git clone https://github.com/ros-industrial/industrial_ci.git .ci_config
-script:
- - source .ci_config/travis.sh
-
+ - git clone --quiet --depth 1 https://github.com/ROBOTIS-GIT/ros2ci.git .ros2ci
+ - cp turtlebot3_ci.repos .ros2ci/additional_repos.repos
+
+matrix:
+ include:
+ - script: .ros2ci/travis.bash dashing
diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md
index 868fb8c0..5ca4cc17 100644
--- a/ISSUE_TEMPLATE.md
+++ b/ISSUE_TEMPLATE.md
@@ -1,4 +1,4 @@
-ISSUE TEMPLATE ver. 0.2.0
+ISSUE TEMPLATE ver. 0.3.0
1. Which TurtleBot3 you have?
@@ -6,38 +6,48 @@ ISSUE TEMPLATE ver. 0.2.0
- [ ] Waffle
- [ ] Waffle Pi
-2. Which SBC(Single Board Computer) is working on TurtleBot3?
+2. Which ROS is working with TurtleBot3?
+
+ - [ ] ROS 1 Kinetic Kame
+ - [ ] ROS 1 Melodic Morenia
+ - [ ] ROS 2 Dashing Diademata
+ - [ ] ROS 2 Eloquent Elusor
+ - [ ] etc (PLEASE, WRITE DOWN YOUR ROS VERSION HERE)
+
+3. Which SBC(Single Board Computer) is working on TurtleBot3?
- [ ] Raspberry Pi 3
- [ ] Intel Joule 570x
- [ ] etc (PLEASE, WRITE DOWN YOUR SBC HERE)
-3. Which OS you installed in SBC?
+4. Which OS you installed in SBC?
- - [ ] Ubuntu MATE 16.04 or later
- [ ] Raspbian
+ - [ ] Ubuntu MATE 16.04 or later
+ - [ ] Ubuntu Server 18.04 or later
- [ ] etc (PLEASE, WRITE DOWN YOUR OS)
-4. Which OS you installed in Remote PC?
+5. Which OS you installed in Remote PC?
- [ ] Ubuntu 16.04 LTS (Xenial Xerus)
- [ ] Ubuntu 18.04 LTS (Bionic Beaver)
- [ ] Linux Mint 18.x
+ - [ ] Linux Mint 19.x
- [ ] etc (PLEASE, WRITE DOWN YOUR OS)
-5. Write down software version and firmware version
+6. Write down software version and firmware version
- Software version: [x.x.x]
- Firmware version: [x.x.x]
-
-6. Write down the commands you used in order
+
+7. Write down the commands you used in order
- HERE
-
-7. Copy and Paste your error message on terminal
+
+8. Copy and Paste your error message on terminal
- HERE
-
-8. Please, describe detailedly what difficulty you are in
+
+9. Please, describe detailedly what difficulty you are in
- HERE
diff --git a/README.md b/README.md
index c913daa3..f2a5408b 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,15 @@
# TurtleBot3
-## ROS Packages for TurtleBot3
-|Version|Kinetic + Ubuntu Xenial|Melodic + Ubuntu Bionic|
+## ROS 1 Packages for TurtleBot3
+|develop|master|Kinetic + Ubuntu Xenial|Melodic + Ubuntu Bionic|
+|:---:|:---:|:---:|:---:|
+|[](https://travis-ci.org/ROBOTIS-GIT/turtlebot3)|[](https://travis-ci.org/ROBOTIS-GIT/turtlebot3)|[](https://travis-ci.org/ROBOTIS-GIT/turtlebot3)|[](https://travis-ci.org/ROBOTIS-GIT/turtlebot3)|
+
+## ROS 2 Packages for TurtleBot3
+|ros2-devel|ros2|Dashing + Ubuntu Bionic|
|:---:|:---:|:---:|
-|[](https://badge.fury.io/gh/ROBOTIS-GIT%2Fturtlebot3)|[](https://travis-ci.org/ROBOTIS-GIT/turtlebot3)|[](https://travis-ci.org/ROBOTIS-GIT/turtlebot3)|
+|[](https://travis-ci.org/ROBOTIS-GIT/turtlebot3)|[](https://travis-ci.org/ROBOTIS-GIT/turtlebot3)|[](https://travis-ci.org/ROBOTIS-GIT/turtlebot3)|
## ROBOTIS e-Manual for TurtleBot3
- [ROBOTIS e-Manual for TurtleBot3](http://turtlebot3.robotis.com/)
diff --git a/turtlebot3.repos b/turtlebot3.repos
index d46078c2..d26248af 100644
--- a/turtlebot3.repos
+++ b/turtlebot3.repos
@@ -11,39 +11,15 @@ repositories:
type: git
url: https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
version: ros2
- gazebo/gazebo_ros_pkgs:
- type: git
- url: https://github.com/ros-simulation/gazebo_ros_pkgs.git
- version: ros2
- gazebo/camera_info_manager:
- type: git
- url: https://github.com/ros-perception/image_common.git
- version: ros2
- gazebo/vision_opencv:
- type: git
- url: https://github.com/ros-perception/vision_opencv.git
- version: ros2
- cartographer/cartographer:
- type: git
- url: https://github.com/ROBOTIS-GIT/cartographer.git
- version: dashing
- cartographer/cartographer_ros:
+ utils/cartographer_ros:
type: git
url: https://github.com/ROBOTIS-GIT/cartographer_ros.git
version: dashing
- cartographer/pcl_conversions:
- type: git
- url: https://github.com/ros2/pcl_conversions.git
- version: ros2
- navigation2/navigation2:
- type: git
- url: https://github.com/ros-planning/navigation2.git
- version: dashing-devel
- navigation2/BehaviorTree.CPP:
+ utils/DynamixelSDK:
type: git
- url: https://github.com/BehaviorTree/BehaviorTree.CPP.git
+ url: https://github.com/ROBOTIS-GIT/DynamixelSDK.git
version: ros2
- navigation2/angles:
+ utils/hls_lfcd_lds_driver:
type: git
- url: https://github.com/ros/angles.git
+ url: https://github.com/ROBOTIS-GIT/hls_lfcd_lds_driver.git
version: ros2
diff --git a/turtlebot3/CHANGELOG.rst b/turtlebot3/CHANGELOG.rst
new file mode 100644
index 00000000..56eabc09
--- /dev/null
+++ b/turtlebot3/CHANGELOG.rst
@@ -0,0 +1,144 @@
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Changelog for package turtlebot3
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+2.0.0 (2019-08-20)
+------------------
+* Supported ROS 2 Dashing Diademata
+* Updated the CHANGELOG and version to release binary packages
+* Removed ament_export_dependency(xacro) `#462 `_
+* Added use_sim_time parameter for rviz2 `#456 `_
+* Fixed ROS2 dependencies and library install `#454 `_
+* Fixed turtlebot3.repos `#447 `_ `#432 `_
+* Fixed scan rate to 5hz `#418 `_
+* Initialized joint states variables `#411 `_
+* Updated map.yaml `#386 `_
+* Contributors: Matt Hansen, Alberto Soragna, Carl Delsey, sousou1, Emerson Knapp, Mikael Arguedas, Ross Desmond, Darby Lim, Pyo
+
+1.2.2 (2019-08-20)
+------------------
+* Fixed `dwa local planner params` for dwa_local_planner 1.16.2 `#415 `_
+* This patch only applies to ROS 1 Melodic.
+* Contributors: atinfinity, Kayman
+
+1.2.1 (2019-08-20)
+------------------
+* Fixed typo `#436 `_
+* Fixed ROS_ASSERT bug `#416 `_
+* Deleted '/' to sync tf2 `#402 `_
+* Added turtlebot3_remote.launch to turtlebot3_model.launch `#389 `_
+* Contributors: Jonathan Hechtbauer, Pallav Bhalla, ant, Ryan Shim, Kayman, Darby Lim, Gilbert, Pyo
+
+1.2.0 (2019-01-22)
+------------------
+* changed math.ceil() operation `#373 `_
+* fixed TypeError integers
+* fixed read of scanned samples when there isn't 360
+* updated map.yaml `#348 `_
+* added an additional argument move_forward_only to prohibit backward locomotion in navigation `#339 `_
+* fixed typo `#280 `_
+* added windows port `#358 `_
+* Contributors: Gilbert, Darby Lim, linzhibo, oiz5201618, yoshimalucky, Steven Macenski, Eduardo Avelar, Sean Yen, Pyo
+
+1.1.0 (2018-07-23)
+------------------
+* added bringup to load multiple robot simply #251
+* added arguments for multiple robot
+* added odometrySource
+* modified camera topic name
+* modified base_scan update_rate and add param on diff_drive #258
+* modified the laser scanner update_rate in the gazebo xacro files #258
+* modified origin of collision in Waffle URDF
+* updated turtlebot3_diagnostic node
+* updated firmware version from 1.2.0 to 1.2.2
+* updated get firmware version
+* updated version check function
+* updated warn msg for version check
+* deleted unused get_scan function #227
+* Contributors: Darby Lim, Gilbert, Eduardo Avelar, shtseng, Pyo
+
+1.0.0 (2018-05-29)
+------------------
+* added cartographer
+* added hector mapping
+* added karto SLAM
+* added frontier_exploration
+* added launch files to run various SLAMs
+* added robot model for OpenManipulator and turtlebot3_autorace
+* added exec python nodes like marker_server in catkin_install_python
+* added frameName for imu on gazebo (however, there is no effect.)
+* added variable to check version only once (turtlebot3_bringup)
+* modified global names `#211 `_ from FurqanHabibi/fix_global_topic_name
+* modified gmapping parameters
+* modified navigation parameters
+* modified version check and firmware version (turtlebot3_bringup)
+* modified robot names
+* modified range of lidar, lidar position, scan param
+* modified camera position and fixed slip bug
+* modified waffle_pi stl files
+* modified initial value, profile function, limit velocity msg (teleop)
+* merged pull request `#154 `_ `#153 `_ `#148 `_ `#147 `_ `#146 `_ `#145 `_
+* Contributors: Darby Lim, Leon Jung, Gilbert, KurtE, ncnynl, FurqanHabibi, skasperski, ihadzic, Pyo
+
+0.2.1 (2018-03-14)
+------------------
+* added install directory
+* refactoring for release
+* Contributors: Pyo
+
+0.2.0 (2018-03-12)
+------------------
+* added turtlebot3_rpicamera.launch for raspberry pi camera
+* added waffle pi model (urdf and gazebo)
+* added verion check function
+* added diagnostics node
+* added scripts for reload rules
+* added example package
+* modified firmware version
+* modified param config
+* modified topic of gazebo plugin
+* modified r200 tf tree
+* modified gazebo imu link
+* removed the large bag file and added download command from other site
+* refactoring for release
+* Contributors: Darby Lim, Gilbert, Leon Jung, Pyo
+
+0.1.6 (2017-08-14)
+------------------
+* fixed typo
+* fixed xacro.py deprecation
+* modified file location
+* updated nav param
+* updated SLAM param
+* updated model.launch
+* updated IMU link
+* updated gazebo config
+* Contributors: Darby Lim, Hunter L. Allen
+
+0.1.5 (2017-05-25)
+------------------
+* updated turtlebot3 waffle URDF
+* changed the node name from hlds_laser_publisher to turtlebot3_lds
+* modified bag and map files
+* added SLAM bag file
+* Contributors: Darby Lim, Pyo
+
+0.1.4 (2017-05-23)
+------------------
+* modified launch file name
+* added teleop package
+* Contributors: Darby Lim
+
+0.1.3 (2017-04-24)
+------------------
+* Detached turtlebot3_msgs package from turtlebot3 package for uploading to rosdistro
+* modified the package information for release
+* modified SLAM param
+* modified the description, authors, depend option and delete the core package
+* modified the turtlebot bringup files
+* modified pkg setting for turtlebot3_core
+* modified the navigation package and turtlebot3 node for demo
+* modified the wheel speed gain
+* added Intel RealSense R200
+* added LDS sensor
+* Contributors: Darby Lim, Leon Jung, Pyo
diff --git a/turtlebot3/package.xml b/turtlebot3/package.xml
index 155f6972..4383362b 100644
--- a/turtlebot3/package.xml
+++ b/turtlebot3/package.xml
@@ -1,13 +1,14 @@
-
+
+
turtlebot3
- 1.0.0
+ 2.0.0
- ROS2 packages for TurtleBot3
+ ROS 2 packages for TurtleBot3
Apache 2.0
Darby Lim
- Pyo
+ Pyo
Pyo
http://wiki.ros.org/turtlebot3_description
http://turtlebot3.robotis.com
@@ -17,7 +18,6 @@
turtlebot3_bringup
turtlebot3_cartographer
turtlebot3_description
- turtlebot3_lidar
turtlebot3_navigation2
turtlebot3_node
turtlebot3_teleop
diff --git a/turtlebot3_bringup/99-turtlebot3-cdc.rules b/turtlebot3_bringup/99-turtlebot3-cdc.rules
new file mode 100644
index 00000000..efd71c43
--- /dev/null
+++ b/turtlebot3_bringup/99-turtlebot3-cdc.rules
@@ -0,0 +1,10 @@
+#http://linux-tips.org/t/prevent-modem-manager-to-capture-usb-serial-devices/284/2.
+
+#cp rules /etc/udev/rules.d/
+#sudo udevadm control --reload-rules
+#sudo udevadm trigger
+
+ATTRS{idVendor}=="0483" ATTRS{idProduct}=="5740", ENV{ID_MM_DEVICE_IGNORE}="1", MODE:="0666"
+ATTRS{idVendor}=="0483" ATTRS{idProduct}=="df11", MODE:="0666"
+ATTRS{idVendor}=="fff1" ATTRS{idProduct}=="ff48", ENV{ID_MM_DEVICE_IGNORE}="1", MODE:="0666"
+ATTRS{idVendor}=="10c4" ATTRS{idProduct}=="ea60", ENV{ID_MM_DEVICE_IGNORE}="1", MODE:="0666"
\ No newline at end of file
diff --git a/turtlebot3_bringup/CHANGELOG.rst b/turtlebot3_bringup/CHANGELOG.rst
index 7f533ec2..2e010291 100644
--- a/turtlebot3_bringup/CHANGELOG.rst
+++ b/turtlebot3_bringup/CHANGELOG.rst
@@ -2,6 +2,26 @@
Changelog for package turtlebot3_bringup
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+2.0.0 (2019-08-20)
+------------------
+* Supported ROS 2 Dashing Diademata
+* Updated the CHANGELOG and version to release binary packages
+* Fixed ROS2 dependencies and library install `#454 `_
+* Contributors: Emerson Knapp, Darby Lim, Pyo
+
+1.2.2 (2019-08-20)
+------------------
+* none
+
+1.2.1 (2019-08-20)
+------------------
+* Added turtlebot3_remote.launch to turtlebot3_model.launch `#389 `_
+* Contributors: Jonathan Hechtbauer, Gilbert
+
+1.2.0 (2019-01-22)
+------------------
+* none
+
1.1.0 (2018-07-23)
------------------
* added bringup to load multiple robot simply #251
diff --git a/turtlebot3_bringup/CMakeLists.txt b/turtlebot3_bringup/CMakeLists.txt
index 2e4d6da0..0208aa8a 100644
--- a/turtlebot3_bringup/CMakeLists.txt
+++ b/turtlebot3_bringup/CMakeLists.txt
@@ -17,34 +17,11 @@ endif()
################################################################################
find_package(ament_cmake REQUIRED)
-################################################################################
-# Setup for python modules and scripts
-################################################################################
-
-################################################################################
-# Declare ROS messages, services and actions
-################################################################################
-
-################################################################################
-# Declare ROS dynamic reconfigure parameters
-################################################################################
-
-################################################################################
-# Declare catkin specific configuration to be passed to dependent projects
-################################################################################
-# catkin_package(
-# CATKIN_DEPENDS roscpp std_msgs sensor_msgs diagnostic_msgs turtlebot3_msgs
-# )
-
-################################################################################
-# Build
-################################################################################
-
################################################################################
# Install
################################################################################
install(
- DIRECTORY launch
+ DIRECTORY launch param
DESTINATION share/${PROJECT_NAME}
)
@@ -52,4 +29,3 @@ install(
# Macro for ament package
################################################################################
ament_package()
-
diff --git a/turtlebot3_bringup/launch/robot.launch.py b/turtlebot3_bringup/launch/robot.launch.py
index f26ef753..a9ff378d 100644
--- a/turtlebot3_bringup/launch/robot.launch.py
+++ b/turtlebot3_bringup/launch/robot.launch.py
@@ -18,31 +18,65 @@
import os
+from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
-from launch.actions import IncludeLaunchDescription
-from launch.substitutions import LaunchConfiguration
from launch.actions import DeclareLaunchArgument
+from launch.actions import IncludeLaunchDescription
from launch.launch_description_sources import PythonLaunchDescriptionSource
+from launch.substitutions import LaunchConfiguration
from launch.substitutions import ThisLaunchFileDir
from launch_ros.actions import Node
+
def generate_launch_description():
+ TURTLEBOT3_MODEL = os.environ['TURTLEBOT3_MODEL']
+
+ usb_port = LaunchConfiguration('usb_port', default='/dev/ttyACM0')
+
+ tb3_param_dir = LaunchConfiguration(
+ 'tb3_param_dir',
+ default=os.path.join(
+ get_package_share_directory('turtlebot3_bringup'),
+ 'param',
+ TURTLEBOT3_MODEL + '.yaml'))
+
+ lidar_pkg_dir = LaunchConfiguration(
+ 'lidar_pkg_dir',
+ default=os.path.join(get_package_share_directory('hls_lfcd_lds_driver'), 'launch'))
+
use_sim_time = LaunchConfiguration('use_sim_time', default='false')
return LaunchDescription([
DeclareLaunchArgument(
- 'use_sim_time',
+ 'use_sim_time',
default_value=use_sim_time,
description='Use simulation (Gazebo) clock if true'),
+ DeclareLaunchArgument(
+ 'usb_port',
+ default_value=usb_port,
+ description='Connected USB port with OpenCR'),
+
+ DeclareLaunchArgument(
+ 'tb3_param_dir',
+ default_value=tb3_param_dir,
+ description='Full path to turtlebot3 parameter file to load'),
+
IncludeLaunchDescription(
- PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/turtlebot3_state_publisher.launch.py']),
+ PythonLaunchDescriptionSource(
+ [ThisLaunchFileDir(), '/turtlebot3_state_publisher.launch.py']),
launch_arguments={'use_sim_time': use_sim_time}.items(),
),
+ IncludeLaunchDescription(
+ PythonLaunchDescriptionSource([lidar_pkg_dir, '/hlds_laser.launch.py']),
+ launch_arguments={'port': '/dev/ttyUSB0', 'frame_id': 'base_scan'}.items(),
+ ),
+
Node(
package='turtlebot3_node',
node_executable='turtlebot3_ros',
- node_name='turtlebot3_node',
+ parameters=[tb3_param_dir],
+ arguments=['-i', usb_port],
output='screen'),
- ])
\ No newline at end of file
+ ])
diff --git a/turtlebot3_bringup/launch/rviz2.launch.py b/turtlebot3_bringup/launch/rviz2.launch.py
index 15f751e5..7e6987f5 100644
--- a/turtlebot3_bringup/launch/rviz2.launch.py
+++ b/turtlebot3_bringup/launch/rviz2.launch.py
@@ -22,15 +22,18 @@
from launch import LaunchDescription
from launch_ros.actions import Node
+
def generate_launch_description():
- rviz_config_dir = os.path.join(get_package_share_directory('turtlebot3_description'), 'rviz', 'model.rviz')
-
- return LaunchDescription([
+ rviz_config_dir = os.path.join(
+ get_package_share_directory('turtlebot3_description'),
+ 'rviz',
+ 'model.rviz')
+ return LaunchDescription([
Node(
package='rviz2',
node_executable='rviz2',
node_name='rviz2',
arguments=['-d', rviz_config_dir],
output='screen'),
- ])
\ No newline at end of file
+ ])
diff --git a/turtlebot3_bringup/launch/turtlebot3_state_publisher.launch.py b/turtlebot3_bringup/launch/turtlebot3_state_publisher.launch.py
index 104fc822..bb822892 100644
--- a/turtlebot3_bringup/launch/turtlebot3_state_publisher.launch.py
+++ b/turtlebot3_bringup/launch/turtlebot3_state_publisher.launch.py
@@ -20,19 +20,24 @@
from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
-from launch.substitutions import LaunchConfiguration, EnvironmentVariable
from launch.actions import DeclareLaunchArgument
+from launch.substitutions import LaunchConfiguration
from launch_ros.actions import Node
-TURTLEBOT3_MODEL = os.environ['TURTLEBOT3_MODEL']
def generate_launch_description():
+ TURTLEBOT3_MODEL = os.environ['TURTLEBOT3_MODEL']
+
use_sim_time = LaunchConfiguration('use_sim_time', default='false')
urdf_file_name = 'turtlebot3_' + TURTLEBOT3_MODEL + '.urdf'
+
print("urdf_file_name : {}".format(urdf_file_name))
- urdf = os.path.join(get_package_share_directory('turtlebot3_description'), 'urdf', urdf_file_name)
-
+ urdf = os.path.join(
+ get_package_share_directory('turtlebot3_description'),
+ 'urdf',
+ urdf_file_name)
+
return LaunchDescription([
DeclareLaunchArgument(
'use_sim_time',
@@ -46,4 +51,4 @@ def generate_launch_description():
output='screen',
parameters=[{'use_sim_time': use_sim_time}],
arguments=[urdf]),
- ])
\ No newline at end of file
+ ])
diff --git a/turtlebot3_bringup/package.xml b/turtlebot3_bringup/package.xml
index ecc893c0..2ce53d88 100644
--- a/turtlebot3_bringup/package.xml
+++ b/turtlebot3_bringup/package.xml
@@ -1,9 +1,10 @@
-
+
+
turtlebot3_bringup
- 0.0.1
+ 2.0.0
- ros2 launch scripts for starting the TurtleBot3
+ ROS 2 launch scripts for starting the TurtleBot3
Apache 2.0
Darby Lim
@@ -14,6 +15,9 @@
https://github.com/ROBOTIS-GIT/turtlebot3
https://github.com/ROBOTIS-GIT/turtlebot3/issues
ament_cmake
+ hls_lfcd_lds_driver
+ robot_state_publisher
+ rviz2
turtlebot3_description
turtlebot3_node
diff --git a/turtlebot3_bringup/param/burger.yaml b/turtlebot3_bringup/param/burger.yaml
new file mode 100644
index 00000000..0d6445d7
--- /dev/null
+++ b/turtlebot3_bringup/param/burger.yaml
@@ -0,0 +1,37 @@
+turtlebot3_node:
+ ros__parameters:
+
+ opencr:
+ id: 200
+ baud_rate: 1000000
+ protocol_version: 2.0
+
+ wheels:
+ separation: 0.160
+ radius: 0.033
+
+ motors:
+ profile_acceleration_constant: 214.577
+
+ # [rev/min2]
+ # ref) http://emanual.robotis.com/docs/en/dxl/x/xl430-w250/#profile-acceleration
+ profile_acceleration: 0.0
+
+ sensors:
+ bumper_1: false
+ bumper_2: false
+
+ illumination: false
+
+ ir: false
+
+ sonar: false
+
+diff_drive_controller:
+ ros__parameters:
+
+ odometry:
+ publish_tf: true
+ use_imu: true
+ frame_id: "odom"
+ child_frame_id: "base_footprint"
diff --git a/turtlebot3_bringup/param/waffle.yaml b/turtlebot3_bringup/param/waffle.yaml
new file mode 100644
index 00000000..4693b835
--- /dev/null
+++ b/turtlebot3_bringup/param/waffle.yaml
@@ -0,0 +1,37 @@
+turtlebot3_node:
+ ros__parameters:
+
+ opencr:
+ id: 200
+ baud_rate: 1000000
+ protocol_version: 2.0
+
+ wheels:
+ separation: 0.287
+ radius: 0.033
+
+ motors:
+ profile_acceleration_constant: 214.577
+
+ # [rev/min2]
+ # ref) http://emanual.robotis.com/docs/en/dxl/x/xl430-w250/#profile-acceleration
+ profile_acceleration: 0.0
+
+ sensors:
+ bumper_1: false
+ bumper_2: false
+
+ illumination: false
+
+ ir: false
+
+ sonar: false
+
+diff_drive_controller:
+ ros__parameters:
+
+ odometry:
+ publish_tf: true
+ use_imu: true
+ frame_id: "odom"
+ child_frame_id: "base_footprint"
diff --git a/turtlebot3_bringup/param/waffle_pi.yaml b/turtlebot3_bringup/param/waffle_pi.yaml
new file mode 100644
index 00000000..4693b835
--- /dev/null
+++ b/turtlebot3_bringup/param/waffle_pi.yaml
@@ -0,0 +1,37 @@
+turtlebot3_node:
+ ros__parameters:
+
+ opencr:
+ id: 200
+ baud_rate: 1000000
+ protocol_version: 2.0
+
+ wheels:
+ separation: 0.287
+ radius: 0.033
+
+ motors:
+ profile_acceleration_constant: 214.577
+
+ # [rev/min2]
+ # ref) http://emanual.robotis.com/docs/en/dxl/x/xl430-w250/#profile-acceleration
+ profile_acceleration: 0.0
+
+ sensors:
+ bumper_1: false
+ bumper_2: false
+
+ illumination: false
+
+ ir: false
+
+ sonar: false
+
+diff_drive_controller:
+ ros__parameters:
+
+ odometry:
+ publish_tf: true
+ use_imu: true
+ frame_id: "odom"
+ child_frame_id: "base_footprint"
diff --git a/turtlebot3_cartographer/CHANGELOG.rst b/turtlebot3_cartographer/CHANGELOG.rst
new file mode 100644
index 00000000..97abeaff
--- /dev/null
+++ b/turtlebot3_cartographer/CHANGELOG.rst
@@ -0,0 +1,80 @@
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Changelog for package turtlebot3_cartographer
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+2.0.0 (2019-08-20)
+------------------
+* Supported ROS 2 Dashing Diademata
+* Updated the CHANGELOG and version to release binary packages
+* Changed package name to turtlebot3_cartographer from turtlebot3_slam
+* Contributors: Darby Lim, Pyo
+
+1.2.2 (2019-08-20)
+------------------
+* none
+
+1.2.1 (2019-08-20)
+------------------
+* Fixed ROS_ASSERT bug `#416 `_
+* Contributors: ant, Ryan Shim, Kayman
+
+1.2.0 (2019-01-22)
+------------------
+* modified rosdep `#342 `_
+* Contributors: Steven Macenski, Darby Lim
+
+1.1.0 (2018-07-23)
+------------------
+* added bringup to load multiple robot simply #251
+* added arguments for multiple robot
+* Contributors: Darby Lim, Gilbert, Pyo
+
+1.0.0 (2018-05-29)
+------------------
+* added cartographer
+* added hector mapping
+* added karto SLAM
+* added frontier_exploration
+* added launch files to run various SLAMs
+* modified pull request `#220 `_ `#219 `_ `#215 `_ `#212 `_ `#202 `_ `#154 `_ `#153 `_ `#147 `_ `#146 `_ `#145 `_
+* Contributors: Darby Lim, ncnynl, Pyo
+
+0.2.1 (2018-03-14)
+------------------
+* none
+
+0.2.0 (2018-03-12)
+------------------
+* removed the large bag file and added download command from other site
+* refactoring for release
+* Contributors: Hunter L. Allen, Pyo
+
+0.1.6 (2017-08-14)
+------------------
+* updated SLAM param
+* Contributors: Darby Lim
+
+0.1.5 (2017-05-25)
+------------------
+* modified bag and map files
+* added SLAM bag files
+* Contributors: Darby Lim, Pyo
+
+0.1.4 (2017-05-23)
+------------------
+* modified launch file name
+* added teleop package
+* Contributors: Darby Lim
+
+0.1.3 (2017-04-24)
+------------------
+* modified the package information for release
+* modified SLAM param
+* modified the description, authors, depend option and delete the core package
+* modified the turtlebot bringup files
+* modified pkg setting for turtlebot3_core
+* modified the navigation package and turtlebot3 node for demo
+* modified the wheel speed gain
+* added Intel RealSense R200
+* added LDS sensor
+* Contributors: Darby Lim, Pyo
diff --git a/turtlebot3_cartographer/CMakeLists.txt b/turtlebot3_cartographer/CMakeLists.txt
index 27920cbd..ca230fd2 100644
--- a/turtlebot3_cartographer/CMakeLists.txt
+++ b/turtlebot3_cartographer/CMakeLists.txt
@@ -11,26 +11,6 @@ find_package(ament_cmake REQUIRED)
find_package(cartographer REQUIRED)
find_package(cartographer_ros REQUIRED)
-################################################################################
-# Setup for python modules and scripts
-################################################################################
-
-################################################################################
-# Declare ROS messages, services and actions
-################################################################################
-
-################################################################################
-# Declare ROS dynamic reconfigure parameters
-################################################################################
-
-################################################################################
-# Declare catkin specific configuration to be passed to dependent projects
-################################################################################
-
-################################################################################
-# Build
-################################################################################
-
################################################################################
# Install
################################################################################
@@ -43,4 +23,3 @@ install(
# Macro for ament package
################################################################################
ament_package()
-
diff --git a/turtlebot3_cartographer/package.xml b/turtlebot3_cartographer/package.xml
index d94fddff..362f11c0 100644
--- a/turtlebot3_cartographer/package.xml
+++ b/turtlebot3_cartographer/package.xml
@@ -1,13 +1,14 @@
-
+
+
turtlebot3_cartographer
- 0.0.1
+ 2.0.0
- launch scripts for cartographer
+ ROS 2 launch scripts for cartographer
Apache 2.0
Darby Lim
- Pyo
+ Pyo
Pyo
http://wiki.ros.org/turtlebot3_bringup
http://turtlebot3.robotis.com
diff --git a/turtlebot3_ci.repos b/turtlebot3_ci.repos
new file mode 100644
index 00000000..4fd85e2c
--- /dev/null
+++ b/turtlebot3_ci.repos
@@ -0,0 +1,17 @@
+repositories:
+ turtlebot3/turtlebot3_msgs:
+ type: git
+ url: https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
+ version: ros2
+ utils/cartographer_ros:
+ type: git
+ url: https://github.com/ROBOTIS-GIT/cartographer_ros.git
+ version: dashing
+ utils/DynamixelSDK:
+ type: git
+ url: https://github.com/ROBOTIS-GIT/DynamixelSDK.git
+ version: ros2
+ utils/hls_lfcd_lds_driver:
+ type: git
+ url: https://github.com/ROBOTIS-GIT/hls_lfcd_lds_driver.git
+ version: ros2
diff --git a/turtlebot3_description/CHANGELOG.rst b/turtlebot3_description/CHANGELOG.rst
new file mode 100644
index 00000000..ebc3f6aa
--- /dev/null
+++ b/turtlebot3_description/CHANGELOG.rst
@@ -0,0 +1,88 @@
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Changelog for package turtlebot3_description
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+2.0.0 (2019-08-20)
+------------------
+* Supported ROS 2 Dashing Diademata
+* Updated the CHANGELOG and version to release binary packages
+* Removed ament_export_dependency(xacro) `#462 `_
+* Contributors: Ross Desmond, Darby Lim, Pyo
+
+1.2.2 (2019-08-20)
+------------------
+* none
+
+1.2.1 (2019-08-20)
+------------------
+* none
+
+1.2.0 (2019-01-22)
+------------------
+* none
+
+1.1.0 (2018-07-23)
+------------------
+* added bringup to load multiple robot simply #251
+* added odometrySource
+* modified camera topic name
+* modified base_scan update_rate and add param on diff_drive #258
+* modified the laser scanner update_rate in the gazebo xacro files #258
+* modified origin of collision in Waffle URDF
+* Contributors: Darby Lim, Gilbert, shtseng, Pyo
+
+1.0.0 (2018-05-29)
+------------------
+* added frameName for imu on gazebo (however, there is no effect.)
+* modified robot names
+* modified range of lidar, lidar position, scan param
+* modified camera position and fixed slip bug
+* modified waffle_pi stl files
+* merged pull request `#220 `_ `#212 `_ `#200 `_ `#155 `_ `#154 `_ `#153 `_ `#147 `_ `#146 `_
+* Contributors: Darby Lim, Pyo
+
+0.2.1 (2018-03-14)
+------------------
+* refactoring for release
+* Contributors: Pyo
+
+0.2.0 (2018-03-12)
+------------------
+* added waffle pi model (urdf and gazebo)
+* modified topic of gazebo plugin
+* refactoring for release
+* modified r200 tf tree
+* modified gazebo imu link
+* Contributors: Darby Lim, Pyo
+
+0.1.6 (2017-08-14)
+------------------
+* modified models
+* fixed xacro.py deprecation
+* updated IMU link
+* updated gazebo config
+* Contributors: Darby Lim, Hunter L. Allen
+
+0.1.5 (2017-05-25)
+------------------
+* updated turtlebot3 waffle URDF
+* Contributors: Darby Lim
+
+0.1.4 (2017-05-23)
+------------------
+* modified launch file name
+* added teleop package
+* Contributors: Darby Lim
+
+0.1.3 (2017-04-24)
+------------------
+* modified the package information for release
+* modified SLAM param
+* modified the description, authors, depend option and delete the core package
+* modified the turtlebot bringup files
+* modified pkg setting for turtlebot3_core
+* modified the navigation package and turtlebot3 node for demo
+* modified the wheel speed gain
+* added Intel RealSense R200
+* added LDS sensor
+* Contributors: Darby Lim, Pyo
diff --git a/turtlebot3_description/CMakeLists.txt b/turtlebot3_description/CMakeLists.txt
index c80bcf93..5a2d2d98 100644
--- a/turtlebot3_description/CMakeLists.txt
+++ b/turtlebot3_description/CMakeLists.txt
@@ -18,26 +18,6 @@ endif()
find_package(ament_cmake REQUIRED)
find_package(urdf REQUIRED)
-################################################################################
-# Setup for python modules and scripts
-################################################################################
-
-################################################################################
-# Declare ROS messages, services and actions
-################################################################################
-
-################################################################################
-# Declare ROS dynamic reconfigure parameters
-################################################################################
-
-################################################################################
-# Declare catkin specific configuration to be passed to dependent projects
-################################################################################
-
-################################################################################
-# Build
-################################################################################
-
################################################################################
# Install
################################################################################
diff --git a/turtlebot3_description/package.xml b/turtlebot3_description/package.xml
index ccf81d57..bf2ba694 100644
--- a/turtlebot3_description/package.xml
+++ b/turtlebot3_description/package.xml
@@ -1,13 +1,14 @@
-
+
+
turtlebot3_description
- 0.0.1
+ 2.0.0
3D models of the TurtleBot3 for simulation and visualization
Apache 2.0
Darby Lim
- Pyo
+ Pyo
Pyo
http://wiki.ros.org/turtlebot3_description
http://turtlebot3.robotis.com
diff --git a/turtlebot3_description/urdf/turtlebot3_burger.urdf b/turtlebot3_description/urdf/turtlebot3_burger.urdf
index e9a7854f..a418b005 100644
--- a/turtlebot3_description/urdf/turtlebot3_burger.urdf
+++ b/turtlebot3_description/urdf/turtlebot3_burger.urdf
@@ -1,9 +1,9 @@
-
-
+
diff --git a/turtlebot3_description/urdf/turtlebot3_waffle.urdf b/turtlebot3_description/urdf/turtlebot3_waffle.urdf
index e2a1d26d..e591079d 100644
--- a/turtlebot3_description/urdf/turtlebot3_waffle.urdf
+++ b/turtlebot3_description/urdf/turtlebot3_waffle.urdf
@@ -7,7 +7,7 @@
-->
-
+
@@ -71,7 +71,7 @@
-
+
diff --git a/turtlebot3_description/urdf/turtlebot3_waffle_pi.urdf b/turtlebot3_description/urdf/turtlebot3_waffle_pi.urdf
index 08fce8d8..03ff47f5 100644
--- a/turtlebot3_description/urdf/turtlebot3_waffle_pi.urdf
+++ b/turtlebot3_description/urdf/turtlebot3_waffle_pi.urdf
@@ -2,7 +2,7 @@
-
+
diff --git a/turtlebot3_navigation2/CHANGELOG.rst b/turtlebot3_navigation2/CHANGELOG.rst
new file mode 100644
index 00000000..f5f2824c
--- /dev/null
+++ b/turtlebot3_navigation2/CHANGELOG.rst
@@ -0,0 +1,85 @@
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Changelog for package turtlebot3_navigation2
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+2.0.0 (2019-08-20)
+------------------
+* Supported ROS 2 Dashing Diademata
+* Updated the CHANGELOG and version to release binary packages
+* Added use_sim_time parameter for rviz2 `#456 `_
+* Updated map.yaml `#386 `_
+* Changed package name to turtlebot3_navigation2, it supoorts Nav2 of ROS 2
+* Contributors: Mikael Arguedas, Alberto Soragna, Darby Lim, Pyo
+
+1.2.2 (2019-08-20)
+------------------
+* Fixed `dwa local planner params` for dwa_local_planner 1.16.2 `#415 `_
+* This patch only applies to ROS 1 Melodic.
+* Contributors: atinfinity, Kayman
+
+1.2.1 (2019-08-20)
+------------------
+* Deleted '/' to sync tf2 `#402 `_
+* Contributors: Ryan Shim, Kayman, Darby Lim
+
+1.2.0 (2019-01-22)
+------------------
+* updated map.yaml `#348 `_
+* added an additional argument move_forward_only to prohibit backward locomotion in navigation `#339 `_
+* fixed typo `#280 `_
+* Contributors: Gilbert, Darby Lim, linzhibo, oiz5201618, yoshimalucky, Pyo
+
+1.1.0 (2018-07-23)
+------------------
+* added bringup to load multiple robot simply #251
+* added arguments for multiple robot
+* Contributors: Darby Lim, Gilbert, Pyo
+
+1.0.0 (2018-05-29)
+------------------
+* modified navigation parameters
+* modified control frequency and inflation radius
+* modified param after experiments
+* merged pull request `#202 `_ from ROBOTIS-GIT/feature-cartographer
+* merged pull request `#220 `_ `#212 `_ `#200 `_ `#154 `_ `#153 `_ `#147 `_ `#146 `_
+* Contributors: Darby Lim, Pyo
+
+0.2.1 (2018-03-14)
+------------------
+* refactoring for release
+* Contributors: Pyo
+
+0.2.0 (2018-03-12)
+------------------
+* added waffle pi model (urdf and gazebo)
+* refactoring for release
+* Contributors: Darby Lim, Pyo
+
+0.1.6 (2017-08-14)
+------------------
+* updated nav param
+* Contributors: Darby Lim
+
+0.1.5 (2017-05-25)
+------------------
+* modified bag and map files
+* Contributors: Darby Lim, Pyo
+
+0.1.4 (2017-05-23)
+------------------
+* modified launch file name
+* added teleop package
+* Contributors: Darby Lim
+
+0.1.3 (2017-04-24)
+------------------
+* modified the package information for release
+* modified SLAM param
+* modified the description, authors, depend option and delete the core package
+* modified the turtlebot bringup files
+* modified pkg setting for turtlebot3_core
+* modified the navigation package and turtlebot3 node for demo
+* modified the wheel speed gain
+* added Intel RealSense R200
+* added LDS sensor
+* Contributors: Darby Lim, Leon Jung, Pyo
diff --git a/turtlebot3_navigation2/CMakeLists.txt b/turtlebot3_navigation2/CMakeLists.txt
index c2607a75..9f008dd6 100644
--- a/turtlebot3_navigation2/CMakeLists.txt
+++ b/turtlebot3_navigation2/CMakeLists.txt
@@ -10,26 +10,6 @@ project(turtlebot3_navigation2)
find_package(ament_cmake REQUIRED)
find_package(navigation2 REQUIRED)
-################################################################################
-# Setup for python modules and scripts
-################################################################################
-
-################################################################################
-# Declare ROS messages, services and actions
-################################################################################
-
-################################################################################
-# Declare ROS dynamic reconfigure parameters
-################################################################################
-
-################################################################################
-# Declare catkin specific configuration to be passed to dependent projects
-################################################################################
-
-################################################################################
-# Build
-################################################################################
-
################################################################################
# Install
################################################################################
@@ -42,4 +22,3 @@ install(
# Macro for ament package
################################################################################
ament_package()
-
diff --git a/turtlebot3_navigation2/launch/navigation2.launch.py b/turtlebot3_navigation2/launch/navigation2.launch.py
index f5907181..49bd950d 100644
--- a/turtlebot3_navigation2/launch/navigation2.launch.py
+++ b/turtlebot3_navigation2/launch/navigation2.launch.py
@@ -15,50 +15,63 @@
# /* Author: Darby Lim */
import os
+
from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument
-from launch_ros.actions import Node
-from launch.substitutions import LaunchConfiguration
from launch.actions import IncludeLaunchDescription
from launch.launch_description_sources import PythonLaunchDescriptionSource
-from launch.substitutions import ThisLaunchFileDir
-from launch.actions import ExecuteProcess
+from launch.substitutions import LaunchConfiguration
+from launch_ros.actions import Node
TURTLEBOT3_MODEL = os.environ['TURTLEBOT3_MODEL']
def generate_launch_description():
use_sim_time = LaunchConfiguration('use_sim_time', default='false')
- map_dir = LaunchConfiguration('map',
- default=os.path.join(get_package_share_directory('turtlebot3_navigation2'), 'map', 'map.yaml'))
+ map_dir = LaunchConfiguration(
+ 'map',
+ default=os.path.join(
+ get_package_share_directory('turtlebot3_navigation2'),
+ 'map',
+ 'map.yaml'))
+
+ param_file_name = TURTLEBOT3_MODEL + '.yaml'
+ param_dir = LaunchConfiguration(
+ 'params',
+ default=os.path.join(
+ get_package_share_directory('turtlebot3_navigation2'),
+ 'param',
+ param_file_name))
- param_file_name = TURTLEBOT3_MODEL + '_params.yaml'
- param_dir = LaunchConfiguration('params',
- default=os.path.join(get_package_share_directory('turtlebot3_navigation2'), 'param', param_file_name))
-
nav2_launch_file_dir = os.path.join(get_package_share_directory('nav2_bringup'), 'launch')
- rviz_config_dir = os.path.join(get_package_share_directory('nav2_bringup'), 'launch', 'nav2_default_view.rviz')
+ rviz_config_dir = os.path.join(
+ get_package_share_directory('nav2_bringup'),
+ 'launch',
+ 'nav2_default_view.rviz')
return LaunchDescription([
DeclareLaunchArgument(
- 'map',
+ 'map',
default_value=map_dir,
description='Full path to map file to load'),
DeclareLaunchArgument(
- 'params',
+ 'params',
default_value=param_dir,
description='Full path to param file to load'),
DeclareLaunchArgument(
- 'use_sim_time',
- default_value='false',
+ 'use_sim_time',
+ default_value='false',
description='Use simulation (Gazebo) clock if true'),
IncludeLaunchDescription(
PythonLaunchDescriptionSource([nav2_launch_file_dir, '/nav2_bringup_launch.py']),
- launch_arguments={'map': map_dir, 'use_sim_time': use_sim_time, 'params': param_dir}.items(),
+ launch_arguments={
+ 'map': map_dir,
+ 'use_sim_time': use_sim_time,
+ 'params': param_dir}.items(),
),
Node(
diff --git a/turtlebot3_navigation2/package.xml b/turtlebot3_navigation2/package.xml
index 62ea7e6a..5fc792e5 100644
--- a/turtlebot3_navigation2/package.xml
+++ b/turtlebot3_navigation2/package.xml
@@ -1,21 +1,20 @@
-
+
+
turtlebot3_navigation2
- 0.0.1
+ 2.0.0
- launch scripts for navigation2
+ ROS 2 launch scripts for navigation2
Apache 2.0
Darby Lim
- Pyo
+ Pyo
Pyo
http://wiki.ros.org/turtlebot3_bringup
http://turtlebot3.robotis.com
https://github.com/ROBOTIS-GIT/turtlebot3
https://github.com/ROBOTIS-GIT/turtlebot3/issues
ament_cmake
- ament_index_python
- launch
navigation2
ament_cmake
diff --git a/turtlebot3_navigation2/param/burger_params.yaml b/turtlebot3_navigation2/param/burger.yaml
similarity index 87%
rename from turtlebot3_navigation2/param/burger_params.yaml
rename to turtlebot3_navigation2/param/burger.yaml
index 9335a8b6..1c97c3d9 100644
--- a/turtlebot3_navigation2/param/burger_params.yaml
+++ b/turtlebot3_navigation2/param/burger.yaml
@@ -1,6 +1,6 @@
amcl:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
alpha1: 0.2
alpha2: 0.2
alpha3: 0.2
@@ -40,20 +40,20 @@ amcl:
amcl_map_client:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
amcl_rclcpp_node:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
bt_navigator:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
bt_xml_filename: "bt_navigator.xml"
dwb_controller:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
debug_trajectory_details: True
min_vel_x: 0.0
min_vel_y: 0.0
@@ -83,8 +83,8 @@ dwb_controller:
transform_tolerance: 0.2
critics: ["RotateToGoal", "Oscillation", "BaseObstacle", "GoalAlign", "PathAlign", "PathDist", "GoalDist"]
BaseObstacle.scale: 0.02
- PathAlign.scale: 32.0
- GoalAlign.scale: 24.0
+ PathAlign.scale: 0.0
+ GoalAlign.scale: 0.0
PathDist.scale: 32.0
GoalDist.scale: 24.0
RotateToGoal.scale: 32.0
@@ -92,7 +92,7 @@ dwb_controller:
local_costmap:
local_costmap:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
global_frame: odom
plugin_names: ["obstacle_layer", "inflation_layer"]
plugin_types: ["nav2_costmap_2d::ObstacleLayer", "nav2_costmap_2d::InflationLayer"]
@@ -113,15 +113,15 @@ local_costmap:
marking: True
local_costmap_client:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
local_costmap_rclcpp_node:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
global_costmap:
global_costmap:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
robot_radius: 0.105
obstacle_layer:
enabled: True
@@ -134,19 +134,19 @@ global_costmap:
marking: True
global_costmap_client:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
global_costmap_rclcpp_node:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
map_server:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
yaml_filename: "map.yaml"
lifecycle_manager:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
autostart: True
node_names: ['map_server', 'amcl',
'world_model', 'dwb_controller',
@@ -154,26 +154,26 @@ lifecycle_manager:
lifecycle_manager_service_client:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
lifecycle_manager_client_service_client:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
navfn_planner:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
tolerance: 0.0
use_astar: false
navfn_planner_GetCostmap_client:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
robot_state_publisher:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
world_model:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
diff --git a/turtlebot3_navigation2/param/waffle_params.yaml b/turtlebot3_navigation2/param/waffle.yaml
similarity index 85%
rename from turtlebot3_navigation2/param/waffle_params.yaml
rename to turtlebot3_navigation2/param/waffle.yaml
index 5437a0d6..1c0719ed 100644
--- a/turtlebot3_navigation2/param/waffle_params.yaml
+++ b/turtlebot3_navigation2/param/waffle.yaml
@@ -1,6 +1,6 @@
amcl:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
alpha1: 0.2
alpha2: 0.2
alpha3: 0.2
@@ -40,20 +40,20 @@ amcl:
amcl_map_client:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
amcl_rclcpp_node:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
bt_navigator:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
bt_xml_filename: "bt_navigator.xml"
dwb_controller:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
debug_trajectory_details: True
min_vel_x: 0.0
min_vel_y: 0.0
@@ -83,8 +83,8 @@ dwb_controller:
transform_tolerance: 0.2
critics: ["RotateToGoal", "Oscillation", "BaseObstacle", "GoalAlign", "PathAlign", "PathDist", "GoalDist"]
BaseObstacle.scale: 0.02
- PathAlign.scale: 32.0
- GoalAlign.scale: 24.0
+ PathAlign.scale: 0.0
+ GoalAlign.scale: 0.0
PathDist.scale: 32.0
GoalDist.scale: 24.0
RotateToGoal.scale: 32.0
@@ -92,7 +92,7 @@ dwb_controller:
local_costmap:
local_costmap:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
global_frame: odom
plugin_names: ["obstacle_layer", "inflation_layer"]
plugin_types: ["nav2_costmap_2d::ObstacleLayer", "nav2_costmap_2d::InflationLayer"]
@@ -100,7 +100,7 @@ local_costmap:
width: 3
height: 3
resolution: 0.05
- robot_radius: 0.220
+ robot_radius: 0.22
inflation_layer.cost_scaling_factor: 3.0
obstacle_layer:
enabled: True
@@ -113,16 +113,16 @@ local_costmap:
marking: True
local_costmap_client:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
local_costmap_rclcpp_node:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
global_costmap:
global_costmap:
ros__parameters:
- use_sim_time: True
- robot_radius: 0.220
+ use_sim_time: False
+ robot_radius: 0.22
obstacle_layer:
enabled: True
always_send_full_costmap: True
@@ -134,19 +134,19 @@ global_costmap:
marking: True
global_costmap_client:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
global_costmap_rclcpp_node:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
map_server:
ros__parameters:
- use_sim_time: True
- yaml_filename: "turtlebot3_world.yaml"
+ use_sim_time: False
+ yaml_filename: "map.yaml"
lifecycle_manager:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
autostart: True
node_names: ['map_server', 'amcl',
'world_model', 'dwb_controller',
@@ -154,26 +154,26 @@ lifecycle_manager:
lifecycle_manager_service_client:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
lifecycle_manager_client_service_client:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
navfn_planner:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
tolerance: 0.0
use_astar: false
navfn_planner_GetCostmap_client:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
robot_state_publisher:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
world_model:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
diff --git a/turtlebot3_navigation2/param/waffle_pi_params.yaml b/turtlebot3_navigation2/param/waffle_pi.yaml
similarity index 85%
rename from turtlebot3_navigation2/param/waffle_pi_params.yaml
rename to turtlebot3_navigation2/param/waffle_pi.yaml
index 5437a0d6..1c0719ed 100644
--- a/turtlebot3_navigation2/param/waffle_pi_params.yaml
+++ b/turtlebot3_navigation2/param/waffle_pi.yaml
@@ -1,6 +1,6 @@
amcl:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
alpha1: 0.2
alpha2: 0.2
alpha3: 0.2
@@ -40,20 +40,20 @@ amcl:
amcl_map_client:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
amcl_rclcpp_node:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
bt_navigator:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
bt_xml_filename: "bt_navigator.xml"
dwb_controller:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
debug_trajectory_details: True
min_vel_x: 0.0
min_vel_y: 0.0
@@ -83,8 +83,8 @@ dwb_controller:
transform_tolerance: 0.2
critics: ["RotateToGoal", "Oscillation", "BaseObstacle", "GoalAlign", "PathAlign", "PathDist", "GoalDist"]
BaseObstacle.scale: 0.02
- PathAlign.scale: 32.0
- GoalAlign.scale: 24.0
+ PathAlign.scale: 0.0
+ GoalAlign.scale: 0.0
PathDist.scale: 32.0
GoalDist.scale: 24.0
RotateToGoal.scale: 32.0
@@ -92,7 +92,7 @@ dwb_controller:
local_costmap:
local_costmap:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
global_frame: odom
plugin_names: ["obstacle_layer", "inflation_layer"]
plugin_types: ["nav2_costmap_2d::ObstacleLayer", "nav2_costmap_2d::InflationLayer"]
@@ -100,7 +100,7 @@ local_costmap:
width: 3
height: 3
resolution: 0.05
- robot_radius: 0.220
+ robot_radius: 0.22
inflation_layer.cost_scaling_factor: 3.0
obstacle_layer:
enabled: True
@@ -113,16 +113,16 @@ local_costmap:
marking: True
local_costmap_client:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
local_costmap_rclcpp_node:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
global_costmap:
global_costmap:
ros__parameters:
- use_sim_time: True
- robot_radius: 0.220
+ use_sim_time: False
+ robot_radius: 0.22
obstacle_layer:
enabled: True
always_send_full_costmap: True
@@ -134,19 +134,19 @@ global_costmap:
marking: True
global_costmap_client:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
global_costmap_rclcpp_node:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
map_server:
ros__parameters:
- use_sim_time: True
- yaml_filename: "turtlebot3_world.yaml"
+ use_sim_time: False
+ yaml_filename: "map.yaml"
lifecycle_manager:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
autostart: True
node_names: ['map_server', 'amcl',
'world_model', 'dwb_controller',
@@ -154,26 +154,26 @@ lifecycle_manager:
lifecycle_manager_service_client:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
lifecycle_manager_client_service_client:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
navfn_planner:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
tolerance: 0.0
use_astar: false
navfn_planner_GetCostmap_client:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
robot_state_publisher:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
world_model:
ros__parameters:
- use_sim_time: True
+ use_sim_time: False
diff --git a/turtlebot3_node/CHANGELOG.rst b/turtlebot3_node/CHANGELOG.rst
new file mode 100644
index 00000000..8eb9098a
--- /dev/null
+++ b/turtlebot3_node/CHANGELOG.rst
@@ -0,0 +1,12 @@
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Changelog for package turtlebot3_node
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+2.0.0 (2019-08-20)
+------------------
+* Supported ROS 2 Dashing Diademata
+* Updated the CHANGELOG and version to release binary packages
+* Fixed ROS2 dependencies and library install `#454 `_
+* Fixed scan rate to 5hz `#418 `_
+* Initialized joint states variables `#411 `_
+* Contributors: Matt Hansen, Emerson Knapp, Darby Lim, Pyo
diff --git a/turtlebot3_node/CMakeLists.txt b/turtlebot3_node/CMakeLists.txt
index 1da2e7f3..fa428fc9 100644
--- a/turtlebot3_node/CMakeLists.txt
+++ b/turtlebot3_node/CMakeLists.txt
@@ -16,77 +16,80 @@ endif()
# Find ament packages and libraries for ament and system dependencies
################################################################################
find_package(ament_cmake REQUIRED)
-find_package(rclcpp REQUIRED)
-find_package(std_msgs REQUIRED)
-find_package(sensor_msgs REQUIRED)
+find_package(dynamixel_sdk REQUIRED)
find_package(geometry_msgs REQUIRED)
+find_package(message_filters REQUIRED)
find_package(nav_msgs REQUIRED)
-find_package(turtlebot3_msgs REQUIRED)
+find_package(rclcpp REQUIRED)
+find_package(rcutils REQUIRED)
+find_package(sensor_msgs REQUIRED)
+find_package(std_msgs REQUIRED)
+find_package(std_msgs REQUIRED)
+find_package(std_srvs REQUIRED)
find_package(tf2 REQUIRED)
find_package(tf2_ros REQUIRED)
-find_package(builtin_interfaces REQUIRED)
-
-################################################################################
-# Setup for python modules and scripts
-################################################################################
+find_package(turtlebot3_msgs REQUIRED)
################################################################################
-# Declare ROS messages, services and actions
+# Build
################################################################################
+include_directories(
+ include
+)
-################################################################################
-# Declare ROS dynamic reconfigure parameters
-################################################################################
+add_library(${PROJECT_NAME}_lib
+ "src/devices/motor_power.cpp"
+ "src/devices/sound.cpp"
+ "src/devices/reset.cpp"
-################################################################################
-# Declare catkin specific configuration to be passed to dependent projects
-################################################################################
-
-################################################################################
-# Build
-################################################################################
-add_library(${PROJECT_NAME}_LIB SHARED
- "src/joint_states.cpp"
+ "src/diff_drive_controller.cpp"
+ "src/dynamixel_sdk_wrapper.cpp"
"src/odometry.cpp"
+ "src/turtlebot3.cpp"
+
+ "src/sensors/battery_state.cpp"
+ "src/sensors/imu.cpp"
+ "src/sensors/joint_state.cpp"
+ "src/sensors/sensor_state.cpp"
)
set(DEPENDENCIES
- "rclcpp"
- "std_msgs"
- "sensor_msgs"
+ "dynamixel_sdk"
"geometry_msgs"
+ "message_filters"
"nav_msgs"
- "turtlebot3_msgs"
- "tf2"
+ "rclcpp"
+ "rcutils"
+ "sensor_msgs"
+ "std_msgs"
+ "std_srvs"
"tf2_ros"
- "builtin_interfaces"
+ "tf2"
+ "turtlebot3_msgs"
)
-target_link_libraries(${PROJECT_NAME}_LIB)
-ament_target_dependencies(${PROJECT_NAME}_LIB ${DEPENDENCIES})
+target_link_libraries(${PROJECT_NAME}_lib)
+ament_target_dependencies(${PROJECT_NAME}_lib ${DEPENDENCIES})
set(EXECUTABLE_NAME "turtlebot3_ros")
add_executable(${EXECUTABLE_NAME} src/node_main.cpp)
-target_link_libraries(${EXECUTABLE_NAME} ${PROJECT_NAME}_LIB)
-ament_target_dependencies(${EXECUTABLE_NAME} ${dependencies})
+target_link_libraries(${EXECUTABLE_NAME} ${PROJECT_NAME}_lib)
+ament_target_dependencies(${EXECUTABLE_NAME} ${DEPENDENCIES})
################################################################################
# Install
################################################################################
-install(TARGETS
- ${PROJECT_NAME}_LIB
- ARCHIVE DESTINATION lib
- LIBRARY DESTINATION lib
- RUNTIME DESTINATION bin
+install(DIRECTORY param
+ DESTINATION share/${PROJECT_NAME}
)
-install(TARGETS
- ${EXECUTABLE_NAME}
+install(TARGETS ${EXECUTABLE_NAME}
DESTINATION lib/${PROJECT_NAME}
)
################################################################################
# Macro for ament package
################################################################################
+ament_export_include_directories(include)
ament_package()
diff --git a/turtlebot3_node/include/turtlebot3_node/control_table.hpp b/turtlebot3_node/include/turtlebot3_node/control_table.hpp
new file mode 100644
index 00000000..55130b83
--- /dev/null
+++ b/turtlebot3_node/include/turtlebot3_node/control_table.hpp
@@ -0,0 +1,116 @@
+/*******************************************************************************
+* Copyright 2019 ROBOTIS CO., LTD.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*******************************************************************************/
+
+/* Author: Darby Lim */
+
+#ifndef TURTLEBOT3_NODE_CONTROL_TABLE_HPP_
+#define TURTLEBOT3_NODE_CONTROL_TABLE_HPP_
+
+#include
+
+namespace robotis
+{
+namespace turtlebot3
+{
+constexpr uint8_t EEPROM = 1;
+constexpr uint8_t RAM = 2;
+
+constexpr uint8_t READ = 1;
+constexpr uint8_t READ_WRITE = 3;
+
+typedef struct
+{
+ uint16_t addr;
+ uint8_t memory;
+ uint16_t length;
+ uint8_t rw;
+} ControlItem;
+
+typedef struct
+{
+ ControlItem model_number = {0, EEPROM, 2, READ};
+ ControlItem model_information = {2, EEPROM, 4, READ};
+ ControlItem firmware_version = {6, EEPROM, 1, READ};
+ ControlItem id = {7, EEPROM, 1, READ};
+ ControlItem baud_rate = {8, EEPROM, 1, READ};
+
+ ControlItem millis = {10, RAM, 4, READ};
+ ControlItem micros = {14, RAM, 4, READ};
+
+ ControlItem device_status = {18, RAM, 1, READ};
+ ControlItem heartbeat = {19, RAM, 1, READ_WRITE};
+
+ ControlItem external_led_1 = {20, RAM, 1, READ_WRITE};
+ ControlItem external_led_2 = {21, RAM, 1, READ_WRITE};
+ ControlItem external_led_3 = {22, RAM, 1, READ_WRITE};
+ ControlItem external_led_4 = {23, RAM, 1, READ_WRITE};
+
+ ControlItem button_1 = {26, RAM, 1, READ};
+ ControlItem button_2 = {27, RAM, 1, READ};
+
+ ControlItem bumper_1 = {28, RAM, 1, READ};
+ ControlItem bumper_2 = {29, RAM, 1, READ};
+
+ ControlItem illumination = {30, RAM, 4, READ};
+ ControlItem ir = {34, RAM, 4, READ};
+ ControlItem sonar = {38, RAM, 4, READ};
+
+ ControlItem battery_voltage = {42, RAM, 4, READ};
+ ControlItem battery_percentage = {46, RAM, 4, READ};
+
+ ControlItem sound = {50, RAM, 1, READ_WRITE};
+
+ ControlItem imu_re_calibration = {59, RAM, 1, READ_WRITE};
+
+ ControlItem imu_angular_velocity_x = {60, RAM, 4, READ};
+ ControlItem imu_angular_velocity_y = {64, RAM, 4, READ};
+ ControlItem imu_angular_velocity_z = {68, RAM, 4, READ};
+ ControlItem imu_linear_acceleration_x = {72, RAM, 4, READ};
+ ControlItem imu_linear_acceleration_y = {76, RAM, 4, READ};
+ ControlItem imu_linear_acceleration_z = {80, RAM, 4, READ};
+ ControlItem imu_magnetic_x = {84, RAM, 4, READ};
+ ControlItem imu_magnetic_y = {88, RAM, 4, READ};
+ ControlItem imu_magnetic_z = {92, RAM, 4, READ};
+ ControlItem imu_orientation_w = {96, RAM, 4, READ};
+ ControlItem imu_orientation_x = {100, RAM, 4, READ};
+ ControlItem imu_orientation_y = {104, RAM, 4, READ};
+ ControlItem imu_orientation_z = {108, RAM, 4, READ};
+
+ ControlItem present_current_left = {120, RAM, 4, READ};
+ ControlItem present_current_right = {124, RAM, 4, READ};
+ ControlItem present_velocity_left = {128, RAM, 4, READ};
+ ControlItem present_velocity_right = {132, RAM, 4, READ};
+ ControlItem present_position_left = {136, RAM, 4, READ};
+ ControlItem present_position_right = {140, RAM, 4, READ};
+
+ ControlItem motor_torque_enable = {149, RAM, 1, READ_WRITE};
+
+ ControlItem cmd_velocity_linear_x = {150, RAM, 4, READ_WRITE};
+ ControlItem cmd_velocity_linear_y = {154, RAM, 4, READ_WRITE};
+ ControlItem cmd_velocity_linear_z = {158, RAM, 4, READ_WRITE};
+ ControlItem cmd_velocity_angular_x = {162, RAM, 4, READ_WRITE};
+ ControlItem cmd_velocity_angular_y = {166, RAM, 4, READ_WRITE};
+ ControlItem cmd_velocity_angular_z = {170, RAM, 4, READ_WRITE};
+
+ ControlItem profile_acceleration_left = {174, RAM, 4, READ_WRITE};
+ ControlItem profile_acceleration_right = {178, RAM, 4, READ_WRITE};
+} ControlTable;
+
+const ControlTable extern_control_table;
+} // turtlebot3
+} // robotis
+
+#endif // TURTLEBOT3_NODE_CONTROL_TABLE_HPP_
diff --git a/turtlebot3_node/include/turtlebot3_node/devices/devices.hpp b/turtlebot3_node/include/turtlebot3_node/devices/devices.hpp
new file mode 100644
index 00000000..6161f9f5
--- /dev/null
+++ b/turtlebot3_node/include/turtlebot3_node/devices/devices.hpp
@@ -0,0 +1,58 @@
+/*******************************************************************************
+* Copyright 2019 ROBOTIS CO., LTD.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*******************************************************************************/
+
+/* Author: Darby Lim */
+
+#ifndef TURTLEBOT3_NODE_DEVICES_DEVICES_HPP_
+#define TURTLEBOT3_NODE_DEVICES_DEVICES_HPP_
+
+#include
+#include
+#include
+
+#include
+
+#include "turtlebot3_node/control_table.hpp"
+#include "turtlebot3_node/dynamixel_sdk_wrapper.hpp"
+
+namespace robotis
+{
+namespace turtlebot3
+{
+extern const ControlTable extern_control_table;
+namespace devices
+{
+class Devices{
+ public:
+ explicit Devices(
+ std::shared_ptr & nh,
+ std::shared_ptr & dxl_sdk_wrapper)
+ : nh_(nh),
+ dxl_sdk_wrapper_(dxl_sdk_wrapper)
+ {
+ }
+
+ virtual void command(const void * request, void * response) = 0;
+
+ protected:
+ std::shared_ptr nh_;
+ std::shared_ptr dxl_sdk_wrapper_;
+ rclcpp::QoS qos_ = rclcpp::QoS(rclcpp::ServicesQoS());
+};
+} // devices
+} // turtlebot3
+} // robotis
+#endif // TURTLEBOT3_NODE_DEVICES_DEVICES_HPP_
diff --git a/turtlebot3_node/include/turtlebot3_node/devices/motor_power.hpp b/turtlebot3_node/include/turtlebot3_node/devices/motor_power.hpp
new file mode 100644
index 00000000..ab0b9af5
--- /dev/null
+++ b/turtlebot3_node/include/turtlebot3_node/devices/motor_power.hpp
@@ -0,0 +1,52 @@
+/*******************************************************************************
+* Copyright 2019 ROBOTIS CO., LTD.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*******************************************************************************/
+
+/* Author: Darby Lim */
+
+#ifndef TURTLEBOT3_NODE_DEVICES_MOTOR_POWER_HPP_
+#define TURTLEBOT3_NODE_DEVICES_MOTOR_POWER_HPP_
+
+#include
+
+#include "turtlebot3_node/devices/devices.hpp"
+
+namespace robotis
+{
+namespace turtlebot3
+{
+namespace devices
+{
+class MotorPower : public Devices
+{
+ public:
+ static void request(
+ rclcpp::Client::SharedPtr client,
+ std_srvs::srv::SetBool::Request req);
+
+ explicit MotorPower(
+ std::shared_ptr & nh,
+ std::shared_ptr & dxl_sdk_wrapper,
+ const std::string & server_name = "motor_power");
+
+ void command(const void * request, void * response) override;
+
+ private:
+ rclcpp::Service::SharedPtr srv_;
+};
+} // devices
+} // turtlebot3
+} // robotis
+#endif // TURTLEBOT3_NODE_DEVICES_MOTOR_POWER_HPP_
diff --git a/turtlebot3_node/include/turtlebot3_node/devices/reset.hpp b/turtlebot3_node/include/turtlebot3_node/devices/reset.hpp
new file mode 100644
index 00000000..f83dc3a3
--- /dev/null
+++ b/turtlebot3_node/include/turtlebot3_node/devices/reset.hpp
@@ -0,0 +1,52 @@
+/*******************************************************************************
+* Copyright 2019 ROBOTIS CO., LTD.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*******************************************************************************/
+
+/* Author: Darby Lim */
+
+#ifndef TURTLEBOT3_NODE_DEVICES_RESET_HPP_
+#define TURTLEBOT3_NODE_DEVICES_RESET_HPP_
+
+#include
+
+#include "turtlebot3_node/devices/devices.hpp"
+
+namespace robotis
+{
+namespace turtlebot3
+{
+namespace devices
+{
+class Reset : public Devices
+{
+ public:
+ static void request(
+ rclcpp::Client::SharedPtr client,
+ std_srvs::srv::Trigger::Request req);
+
+ explicit Reset(
+ std::shared_ptr & nh,
+ std::shared_ptr & dxl_sdk_wrapper,
+ const std::string & server_name = "reset");
+
+ void command(const void * request, void * response) override;
+
+ private:
+ rclcpp::Service::SharedPtr srv_;
+};
+} // devices
+} // turtlebot3
+} // robotis
+#endif // TURTLEBOT3_NODE_DEVICES_SOUND_HPP_
diff --git a/turtlebot3_node/include/turtlebot3_node/devices/sound.hpp b/turtlebot3_node/include/turtlebot3_node/devices/sound.hpp
new file mode 100644
index 00000000..6fc8a73d
--- /dev/null
+++ b/turtlebot3_node/include/turtlebot3_node/devices/sound.hpp
@@ -0,0 +1,52 @@
+/*******************************************************************************
+* Copyright 2019 ROBOTIS CO., LTD.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*******************************************************************************/
+
+/* Author: Darby Lim */
+
+#ifndef TURTLEBOT3_NODE_DEVICES_SOUND_HPP_
+#define TURTLEBOT3_NODE_DEVICES_SOUND_HPP_
+
+#include
+
+#include "turtlebot3_node/devices/devices.hpp"
+
+namespace robotis
+{
+namespace turtlebot3
+{
+namespace devices
+{
+class Sound : public Devices
+{
+ public:
+ static void request(
+ rclcpp::Client::SharedPtr client,
+ turtlebot3_msgs::srv::Sound::Request req);
+
+ explicit Sound(
+ std::shared_ptr & nh,
+ std::shared_ptr & dxl_sdk_wrapper,
+ const std::string & server_name = "sound");
+
+ void command(const void * request, void * response) override;
+
+ private:
+ rclcpp::Service::SharedPtr srv_;
+};
+} // devices
+} // turtlebot3
+} // robotis
+#endif // TURTLEBOT3_NODE_DEVICES_SOUND_HPP_
diff --git a/turtlebot3_node/src/joint_state.h b/turtlebot3_node/include/turtlebot3_node/diff_drive_controller.hpp
similarity index 58%
rename from turtlebot3_node/src/joint_state.h
rename to turtlebot3_node/include/turtlebot3_node/diff_drive_controller.hpp
index 5165c78f..0a7e89d4 100644
--- a/turtlebot3_node/src/joint_state.h
+++ b/turtlebot3_node/include/turtlebot3_node/diff_drive_controller.hpp
@@ -16,35 +16,29 @@
/* Author: Darby Lim */
-#ifndef TURTLEBOT3_JOINT_STATE_H
-#define TURTLEBOT3_JOINT_STATE_H
+#ifndef TURTLEBOT3_NODE_DIFF_DRIVE_CONTROLLER_HPP_
+#define TURTLEBOT3_NODE_DIFF_DRIVE_CONTROLLER_HPP_
#include
-#include
-#include
-#include "rclcpp/time.hpp"
+#include
-#include "turtlebot3_msgs/msg/sensor_state.hpp"
-#include "sensor_msgs/msg/joint_state.hpp"
+#include "turtlebot3_node/odometry.hpp"
+namespace robotis
+{
namespace turtlebot3
{
-class JointState
+class DiffDriveController : public rclcpp::Node
{
public:
- JointState(){};
- virtual ~JointState(){};
-
- sensor_msgs::msg::JointState getJointState(const rclcpp::Time now);
- void updateRadianFromTick(const turtlebot3_msgs::msg::SensorState::SharedPtr state);
+ explicit DiffDriveController(const float wheel_seperation, const float wheel_radius);
+ virtual ~DiffDriveController(){};
private:
- std::array last_rad_ = {0.0, 0.0};
- std::array last_diff_tick_ = {0, 0};
-
- std::mutex mutex_;
+ std::shared_ptr nh_;
+ std::unique_ptr odometry_;
};
-}
-
-#endif //TURTLEBOT3_JOINT_STATE_H
+} // turtlebot3
+} // robotis
+#endif // TURTLEBOT3_NODE_DIFF_DRIVE_CONTROLLER_HPP_
diff --git a/turtlebot3_node/include/turtlebot3_node/dynamixel_sdk_wrapper.hpp b/turtlebot3_node/include/turtlebot3_node/dynamixel_sdk_wrapper.hpp
new file mode 100644
index 00000000..414705af
--- /dev/null
+++ b/turtlebot3_node/include/turtlebot3_node/dynamixel_sdk_wrapper.hpp
@@ -0,0 +1,147 @@
+/*******************************************************************************
+* Copyright 2019 ROBOTIS CO., LTD.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*******************************************************************************/
+
+/* Author: Darby Lim */
+
+#ifndef TURTLEBOT3_NODE_DYNAMIXEL_SDK_WRAPPER_HPP_
+#define TURTLEBOT3_NODE_DYNAMIXEL_SDK_WRAPPER_HPP_
+
+#include
+#include
+#include
+#include