├── .gitmodules
├── README.md
├── Resources
└── Dabit
│ ├── 36h11.pdf
│ ├── A3_8x5.pdf
│ ├── Kobuki-UserGuide.pdf
│ ├── Turtlebot_Kobuki_Astra_Hexagon.PDF
│ ├── Turtlebot_Kobuki_Hexagon-Astra-M8.PDF
│ ├── astramounting.pdf
│ └── m8.PDF
├── Setup
├── .dabit_aliases
├── .rosrc
├── automated
│ ├── Desktop
│ │ ├── Master-Bag.desktop
│ │ ├── Master.desktop
│ │ └── Turtlebot.desktop
│ ├── automate.sh
│ ├── backup.sh
│ ├── bin
│ │ ├── change_master
│ │ ├── confirm
│ │ ├── dabit-launcher
│ │ ├── dabit-setup-utility
│ │ └── get_ip
│ ├── definitions.sh
│ ├── environment.sh
│ ├── install.sh
│ ├── reset.sh
│ ├── ssh
│ │ ├── turtlebot_rsa
│ │ └── turtlebot_rsa.pub
│ └── update.sh
└── catkin_ws
│ └── src
│ ├── CMakeLists.txt
│ ├── razor_imu_9dof
│ ├── CMakeLists.txt
│ ├── cfg
│ │ └── imu.cfg
│ ├── config
│ │ ├── my_razor.yaml
│ │ └── razor.yaml
│ ├── launch
│ │ └── start.launch
│ ├── magnetometer_calibration
│ │ ├── Matlab
│ │ │ └── magnetometer_calibration
│ │ │ │ ├── ellipsoid_fit.m
│ │ │ │ ├── ellipsoid_fit_license.txt
│ │ │ │ └── magnetometer_calibration.m
│ │ └── Processing
│ │ │ └── Magnetometer_calibration
│ │ │ ├── Magnetometer_calibration.pde
│ │ │ └── data
│ │ │ └── Univers-66.vlw
│ ├── nodes
│ │ └── imu_node.py
│ ├── package.xml
│ ├── rviz
│ │ └── imu_monitor.perspective
│ └── src
│ │ └── imu_driver
│ │ ├── config.h
│ │ └── imu_driver.ino
│ ├── turtlebot_dabit
│ ├── CMakeLists.txt
│ ├── launch
│ │ ├── 3dsensor.launch
│ │ ├── arduino.launch
│ │ ├── fiducial.launch
│ │ ├── imu.launch
│ │ ├── includes
│ │ │ ├── 3dsensor
│ │ │ │ ├── astra.launch.xml
│ │ │ │ ├── asus_xtion_pro.launch.xml
│ │ │ │ ├── asus_xtion_pro_offset.launch.xml
│ │ │ │ ├── kinect.launch.xml
│ │ │ │ └── r200.launch.xml
│ │ │ ├── amcl
│ │ │ │ ├── amcl.launch.xml
│ │ │ │ ├── astra_amcl.launch.xml
│ │ │ │ ├── asus_xtion_pro_amcl.launch.xml
│ │ │ │ ├── asus_xtion_pro_offset_amcl.launch.xml
│ │ │ │ ├── kinect_amcl.launch.xml
│ │ │ │ └── r200_amcl.launch.xml
│ │ │ ├── capabilities.launch.xml
│ │ │ ├── description.launch.xml
│ │ │ ├── gmapping
│ │ │ │ ├── astra_gmapping.launch.xml
│ │ │ │ ├── asus_xtion_pro_gmapping.launch.xml
│ │ │ │ ├── asus_xtion_pro_offset_gmapping.launch.xml
│ │ │ │ ├── gmapping.launch.xml
│ │ │ │ ├── kinect_gmapping.launch.xml
│ │ │ │ └── r200_gmapping.launch.xml
│ │ │ ├── kobuki
│ │ │ │ ├── bumper2pc.launch.xml
│ │ │ │ ├── mobile_base.launch.xml
│ │ │ │ └── safety_controller.launch.xml
│ │ │ ├── mobile_base.launch.xml
│ │ │ ├── move_base.launch.xml
│ │ │ ├── netbook.launch.xml
│ │ │ ├── robot.launch.xml
│ │ │ ├── safety_controller.launch.xml
│ │ │ ├── velocity_smoother.launch.xml
│ │ │ └── zeroconf.launch.xml
│ │ ├── minimal.launch
│ │ ├── quanergy.launch
│ │ ├── quanergy_lidarscan.launch
│ │ ├── quanergy_test.launch
│ │ ├── robot_model.launch
│ │ ├── rospy_example_class.launch
│ │ ├── turtlebot.launch
│ │ └── wanderer.launch
│ ├── package.xml
│ ├── param
│ │ ├── 3dsensor.yaml
│ │ ├── astra_costmap_params.yaml
│ │ ├── asus_xtion_pro_costmap_params.yaml
│ │ ├── asus_xtion_pro_offset_costmap_params.yaml
│ │ ├── capabilities
│ │ │ └── defaults_tb2.yaml
│ │ ├── costmap_common_params.yaml
│ │ ├── create
│ │ │ ├── capability_providers.yaml
│ │ │ └── diagnostics.yaml
│ │ ├── defaults
│ │ │ ├── capability_providers.yaml
│ │ │ └── smoother.yaml
│ │ ├── dummy.yaml
│ │ ├── dwa_local_planner_params.yaml
│ │ ├── global_costmap_params.yaml
│ │ ├── global_planner_params.yaml
│ │ ├── kinect
│ │ │ └── capability_providers.yaml
│ │ ├── kinect_costmap_params.yaml
│ │ ├── kobuki
│ │ │ ├── capability_providers.yaml
│ │ │ └── diagnostics.yaml
│ │ ├── local_costmap_params.yaml
│ │ ├── move_base_params.yaml
│ │ ├── mux.yaml
│ │ ├── navfn_global_planner_params.yaml
│ │ ├── preferred_rapp.yaml
│ │ ├── r200_costmap_params.yaml
│ │ ├── roomba
│ │ │ ├── capability_providers.yaml
│ │ │ └── diagnostics.yaml
│ │ ├── xtion
│ │ │ └── capability_providers.yaml
│ │ └── zeroconf.yaml
│ ├── scripts
│ │ ├── rospy_example_class
│ │ ├── rospy_hello_world.py
│ │ └── rospy_opencv.py
│ ├── setup.py
│ ├── src
│ │ ├── roscpp_hello_world.cpp
│ │ ├── roscpp_opencv.cpp
│ │ ├── roscpp_opencv_headless.cpp
│ │ ├── roscpp_pcl_example.cpp
│ │ ├── roscpp_publisher.cpp
│ │ ├── roscpp_subscriber.cpp
│ │ └── turtlebot_dabit
│ │ │ ├── __init__.py
│ │ │ └── rospy_example_class.py
│ └── srv
│ │ ├── Centroid.srv
│ │ └── Trajectory.srv
│ ├── turtlebot_dabit_description
│ ├── .cproject
│ ├── .project
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── meshes
│ │ ├── sensors
│ │ │ ├── 0_xtion_pro.jpg
│ │ │ ├── M8.STL
│ │ │ ├── M8_baseplate.STL
│ │ │ ├── astra.STL
│ │ │ ├── astra.dae
│ │ │ ├── astra.jpg
│ │ │ ├── astra_mount.STL
│ │ │ ├── asus_xtion_pro_live.dae
│ │ │ ├── asus_xtion_pro_live.png
│ │ │ ├── kinect.dae
│ │ │ ├── kinect.jpg
│ │ │ ├── kinect.tga
│ │ │ ├── r200.dae
│ │ │ ├── r200.jpg
│ │ │ ├── r200_bracket.stl
│ │ │ ├── r200_bracket_end.stl
│ │ │ ├── razor_9dof.STL
│ │ │ ├── sensor_pole.dae
│ │ │ ├── xtion_pro.jpg
│ │ │ ├── xtion_pro_camera.dae
│ │ │ ├── xtion_pro_camera.jpg
│ │ │ └── xtion_pro_stack.dae
│ │ └── stacks
│ │ │ ├── circles
│ │ │ ├── 68-02403-125_Spacer.dae
│ │ │ ├── 68-02421-8000-RA_Turtlebot_F-F_Standoff.dae
│ │ │ ├── 68-02421-8000-RA_Turtlebot_F-F_Standoff_color.png
│ │ │ ├── 68-04552-1000-RA_Turtlebot_M-F_Standoff.dae
│ │ │ ├── 68-04552-1000-RA_Turtlebot_M-F_Standoff_color.png
│ │ │ ├── 68-04552-2000-RA_Turtlebot_M-F_Standoff.dae
│ │ │ ├── 68-04552-2000-RA_Turtlebot_M-F_Standoff_color.png
│ │ │ ├── 68-04556-RA_Kinect_Standoff_Assy.3ds
│ │ │ ├── 68-04556-RA_Kinect_Standoff_Assy.dae
│ │ │ ├── plate_0_logo.dae
│ │ │ ├── plate_0_logo.tga
│ │ │ ├── plate_1_logo.dae
│ │ │ ├── plate_1_logo.tga
│ │ │ ├── plate_2_logo.dae
│ │ │ └── plate_2_logo.tga
│ │ │ └── hexagons
│ │ │ ├── images
│ │ │ ├── 1f_pole.jpg
│ │ │ ├── 1f_stack.jpg
│ │ │ ├── 2f_pole.jpg
│ │ │ ├── 2f_stack.jpg
│ │ │ ├── 3f_pole.jpg
│ │ │ ├── 3f_stack.jpg
│ │ │ ├── 3f_stack1.jpg
│ │ │ ├── kinect_pole.jpg
│ │ │ └── kinect_pole_old.jpg
│ │ │ ├── plate_bottom.dae
│ │ │ ├── plate_middle.dae
│ │ │ ├── plate_top.dae
│ │ │ ├── pole_bottom.dae
│ │ │ ├── pole_kinect.dae
│ │ │ ├── pole_middle.dae
│ │ │ └── pole_top.dae
│ ├── package.xml
│ ├── robots
│ │ ├── create_circles_asus_xtion_pro.urdf.xacro
│ │ ├── create_circles_kinect.urdf.xacro
│ │ ├── kobuki_hexagons_astra.urdf.xacro
│ │ ├── kobuki_hexagons_astra_m8.urdf.xacro
│ │ ├── kobuki_hexagons_asus_xtion_pro.urdf.xacro
│ │ ├── kobuki_hexagons_asus_xtion_pro_offset.urdf.xacro
│ │ ├── kobuki_hexagons_kinect.urdf.xacro
│ │ ├── kobuki_hexagons_r200.urdf.xacro
│ │ ├── roomba_circles_asus_xtion_pro.urdf.xacro
│ │ └── roomba_circles_kinect.urdf.xacro
│ ├── scripts
│ │ └── calc_inertia.m
│ ├── test.launch
│ ├── test
│ │ └── test_urdf.cpp
│ └── urdf
│ │ ├── common_properties.urdf.xacro
│ │ ├── sensors
│ │ ├── astra.urdf.xacro
│ │ ├── asus_xtion_pro.urdf.xacro
│ │ ├── asus_xtion_pro_offset.urdf.xacro
│ │ ├── kinect.urdf.xacro
│ │ ├── m8.urdf.xacro
│ │ └── r200.urdf.xacro
│ │ ├── stacks
│ │ ├── circles.urdf.xacro
│ │ └── hexagons.urdf.xacro
│ │ ├── turtlebot_common_library.urdf.xacro
│ │ ├── turtlebot_gazebo.urdf.xacro
│ │ └── turtlebot_properties.urdf.xacro
│ └── turtlebot_wanderer
│ ├── CMakeLists.txt
│ ├── launch
│ └── simple_wanderer.py
│ ├── package.xml
│ └── scripts
│ └── simple_wanderer.py
└── docs
├── 00-Notes.md
├── 00b-Automated_Setup.md
├── 01-Turtlebot_Setup.md
├── 01b-Turtlebot_Ubuntu_Setup.md
├── 02-Master_Setup.md
├── 02b-Network_Setup.md
├── 02c-Tips_and_Tricks.md
├── 03-Turtlebot_Bringup.md
├── 04-Turtlebot_Teleop.md
├── 05-Turtlebot_Visualization.md
├── 06-Gmapping.md
├── 07-RGB-D_SLAM.md
├── 07b-RTABMAP.md
├── 07c-RGBDSLAM.md
├── 07d-ORB_SLAM2.md
├── 08-Catkin_Workspace.md
├── 08b-ROSPY_Building.md
├── 08c-ROSCPP_Building.md
├── 09-Turtlebot_Movement.md
├── 10-Turtlebot_Navigation.md
├── 11-ROS_Arduino.md
├── 11b-Arduino_Subscriber.md
├── 11c-Arduino_Publisher.md
├── 12-RQT_GUI.md
├── 13-ROSPCL.md
├── 14-OpenCV2.md
├── 14b-OpenCV2_Python.md
├── 14c-OpenCV2_CPP.md
├── 15-Skeleton_Recognition.md
├── 16-Facial_Recognition.md
├── 17-Fiducial_Markers.md
├── 18-Razor_IMU.md
├── 19-Quanergy_M8.md
├── 20-Camera_Calibration.md
├── 22-rosbag.md
├── 22a-rqt_bag.md
├── 22b-rqt_turtlebot_houston_bag.md
├── README.md
├── Resources
├── 00-turtlebot_houston_gui.gif
├── 01-explode_view_01.jpg
├── 01b-lock_prompt.png
├── 01b-power_prompt.png
├── 01b-search_lock.png
├── 01b-search_power.png
├── 02-wificonf.png
├── 02b-gedit_bashrc.png
├── 03-turtlebot_dashboard.png
├── 03-turtlebot_spedometer.png
├── 04-turtlebot_keyboard_teleop.png
├── 04-turtlebot_keyboard_teleop_master.png
├── 05-rviz_turtlebot_add_type.png
├── 05-rviz_turtlebot_view_model.png
├── 05-rviz_turtlebot_view_robot.png
├── 05-rviz_turtlebot_view_robot_displays.png
├── 06-2d_nav_goal.png
├── 06-2d_nav_pose_estimate.png
├── 06-global_local_map_disable.png
├── 06-gmapping.gif
├── 06-gmapping_goal.gif
├── 06-gmapping_laserscan.gif
├── 06-gmapping_localization.gif
├── 06-gmapping_map.png
├── 06-gmapping_room.png
├── 07-rtabmap_3d_view.gif
├── 07-rtabmap_circle.gif
├── 07-rtabmap_collected.gif
├── 07-rtabmap_database_update_parameters.png
├── 07-rtabmap_driving.gif
├── 07-rtabmap_image_view.gif
├── 07-rtabmap_loop_closure_display.png
├── 17-evince_5pg.png
├── 17-measure_tag.jpg
├── 19-assembled.jpg
├── 19-ethernet_network.png
├── 19-in-kit.jpg
├── 19-included_in_box.jpg
├── 19-kobuki_connectors.jpg
├── 19-lidar_on.jpg
├── 19-m8.png
├── 19-network.png
├── 19-network_edit_connection_1.png
├── 19-network_edit_connection_2.png
├── 19-network_edit_connection_3.png
├── 19-network_edit_connection_4.png
├── 19-network_edit_connection_5.png
├── 19-power_adapter.jpg
├── 19-power_connection.jpg
├── 19-power_light.jpg
├── 19-power_mounting.jpg
├── 19-screw_mounting.jpg
├── 19-tether_connection.jpg
├── 19-turtlebot_m8.png
├── 19-vis1.png
├── 19-vis2.png
├── 19-vis3.png
├── 22b-data_rqtbag.png
├── 22b-rqt_bag_load_file.gif
├── 22b-rqt_bag_preview.gif
├── 22b-rqt_bag_publish.gif
├── 22b-rqt_bag_record.gif
├── 22b-rqt_play_bag.gif
└── edit_connection.png
└── scripts
└── rtabmap.launch
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "Setup/workspace/apriltags_cpp"]
2 | path = Setup/workspace/apriltags_cpp
3 | url = http://github.com/dabit-industries/apriltags_cpp
4 | [submodule "Setup/workspace/g2o"]
5 | path = Setup/workspace/g2o
6 | url = https://github.com/RainerKuemmerle/g2o
7 | [submodule "Setup/workspace/gtsam"]
8 | path = Setup/workspace/gtsam
9 | url = https://bitbucket.org/gtborg/gtsam.git
10 | [submodule "Setup/workspace/rtabmap"]
11 | path = Setup/workspace/rtabmap
12 | url = https://github.com/introlab/rtabmap
13 | [submodule "Setup/catkin_ws/apriltags"]
14 | path = Setup/catkin_ws/apriltags
15 | url = http://github.com/dabit-industries/apriltags
16 | [submodule "Setup/catkin_ws/rgbdslam_v2"]
17 | path = Setup/catkin_ws/rgbdslam_v2
18 | url = http://github.com/felixendres/rgbdslam_v2.git
19 | [submodule "Setup/catkin_ws/g2o"]
20 | path = Setup/catkin_ws/g2o
21 | url = http://github.com/felixendres/g2o
22 | [submodule "Setup/catkin_ws/rtabmap_ros"]
23 | path = Setup/catkin_ws/rtabmap_ros
24 | url = https://github.com/introlab/rtabmap_ros
25 |
--------------------------------------------------------------------------------
/Resources/Dabit/36h11.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Resources/Dabit/36h11.pdf
--------------------------------------------------------------------------------
/Resources/Dabit/A3_8x5.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Resources/Dabit/A3_8x5.pdf
--------------------------------------------------------------------------------
/Resources/Dabit/Kobuki-UserGuide.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Resources/Dabit/Kobuki-UserGuide.pdf
--------------------------------------------------------------------------------
/Resources/Dabit/Turtlebot_Kobuki_Astra_Hexagon.PDF:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Resources/Dabit/Turtlebot_Kobuki_Astra_Hexagon.PDF
--------------------------------------------------------------------------------
/Resources/Dabit/Turtlebot_Kobuki_Hexagon-Astra-M8.PDF:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Resources/Dabit/Turtlebot_Kobuki_Hexagon-Astra-M8.PDF
--------------------------------------------------------------------------------
/Resources/Dabit/astramounting.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Resources/Dabit/astramounting.pdf
--------------------------------------------------------------------------------
/Resources/Dabit/m8.PDF:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Resources/Dabit/m8.PDF
--------------------------------------------------------------------------------
/Setup/.rosrc:
--------------------------------------------------------------------------------
1 | # Set the MASTER_IP here
2 | export MASTER_IP=$(get_ip)
3 |
4 | # Set TURTLEBOT parameters
5 | export TURTLEBOT_BASE=kobuki
6 | export TURTLEBOT_3D_SENSOR=astra
7 | export TURTLEBOT_STACK=hexagons
8 |
9 | # Set ROS Network parameters
10 | export ROS_MASTER_URI=http://$MASTER_IP:11311
11 | export ROS_IP=$(get_ip)
12 | export ROS_HOSTNAME=$(get_ip)
13 | export ROS_HOME=~/.ros
14 |
--------------------------------------------------------------------------------
/Setup/automated/Desktop/Master-Bag.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Version=1.0
3 | Type=Application
4 | Name=Master-Bag
5 | Comment=
6 | Exec=dabit-launcher master-bag
7 | Icon=
8 | Path=
9 | Terminal=true
10 | StartupNotify=false
11 |
12 |
--------------------------------------------------------------------------------
/Setup/automated/Desktop/Master.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Version=1.0
3 | Type=Application
4 | Name=Master
5 | Comment=
6 | Exec=dabit-launcher master
7 | Icon=
8 | Path=
9 | Terminal=true
10 | StartupNotify=false
11 |
12 |
--------------------------------------------------------------------------------
/Setup/automated/Desktop/Turtlebot.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Version=1.0
3 | Type=Application
4 | Name=Turtlebot
5 | Comment=
6 | Exec=dabit-launcher turtlebot
7 | Icon=
8 | Path=
9 | Terminal=true
10 | StartupNotify=false
11 |
12 |
--------------------------------------------------------------------------------
/Setup/automated/automate.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Write our program to bash alias
3 | CURRENT_DIR="$(dirname "${BASH_SOURCE[0]}")"
4 | CURRENT_DIR=${CURRENT_DIR%/Setup/automated}
5 |
6 | if [ "$CURRENT_DIR" == "." ]; then
7 | CURRENT_DIR=$CURRENT_DIR"/../.."
8 | elif [ "$CURRENT_DIR" == "turtlebot2-tutorials" ]; then
9 | CURRENT_DIR="$(pwd)/turtlebot2-tutorials"
10 | fi
11 |
12 | if [ -z "$DABIT_DIR" ]; then
13 | echo "export DABIT_DIR=$CURRENT_DIR" >> ${HOME}/.bashrc
14 | DABIT_DIR="$CURRENT_DIR"
15 | elif [ "$DABIT_DIR" != "$CURRENT_DIR" ]; then
16 | sed -i '1s!^!export DABIT_DIR='"$CURRENT_DIR"'\n!' ${HOME}/.bashrc
17 | echo $CURRENT_DIR" is different than "$DABIT_DIR
18 | echo "Setting DABIT_DIR environment variable to $CURRENT_DIR"
19 | DABIT_DIR="$CURRENT_DIR"
20 | fi
21 | export DABIT_DIR="$DABIT_DIR"
22 |
23 | . "$DABIT_DIR/Setup/automated/environment.sh"
24 | . "$DABIT_DIR/Setup/automated/definitions.sh"
25 | . ${HOME}/.bashrc
26 | echo ""
27 | . dabit-setup-utility test
28 |
--------------------------------------------------------------------------------
/Setup/automated/backup.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | ###
4 | # Define definitions
5 | ###
6 |
7 | . "$DABIT_DIR/Setup/automated/definitions.sh"
8 |
9 | ###
10 | # Backup Files
11 | ###
12 |
13 | __backup_workspace(){
14 |
15 | # The backup folder
16 | _backup_folder="$_backup_dir/old_workspace_"$(date '+%m-%d-%y_%H-%M-%S')
17 |
18 | if [ -d $_backup_folder ]; then
19 | echo "$_backup_folder ALREADY EXISTS! EXITING!"
20 | exit 0
21 | fi
22 |
23 | echo "Backing up the following folders to: $_backup_folder"
24 |
25 | # Make backup folder
26 | mkdir -p "$_backup_folder"
27 |
28 | # Copy or move files and folders to backup folder
29 | if [[ "$1" = "mv" ]]; then
30 | mv -v {"$_catkin_ws_dir","$_workspace_dir","$_tmp_dir"} "$_backup_folder"
31 | else
32 | cp -rv {"$_catkin_ws_dir","$_workspace_dir","$_tmp_dir"} "$_backup_folder"
33 | fi
34 |
35 | # Copy bashrc to backup folder
36 | cp -v {"$_bashrc_dir","$_rosrc_dir","$_aliases_dir"} "$_backup_folder"
37 | }
38 |
39 | confirm "Moving all working files to ~/old_workspace. Are you sure? [y/N]"
40 | if [[ "$?" -eq 0 ]]; then
41 | __backup_workspace $1
42 | fi
43 |
--------------------------------------------------------------------------------
/Setup/automated/bin/change_master:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | function change_master(){
3 | if [ -z "$1" ]; then
4 | echo "Current Master: $MASTER_IP"
5 | else
6 | OLD_MASTER_IP="$MASTER_IP"
7 | sed -i '/MASTER_IP=/c\export MASTER_IP='"$1" ~/.rosrc
8 | . ~/.rosrc
9 | echo "Master changed from $OLD_MASTER_IP to $MASTER_IP"
10 | fi
11 | . ~/.rosrc
12 | }
13 | change_master $1
14 |
--------------------------------------------------------------------------------
/Setup/automated/bin/confirm:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | function confirm() {
3 | # call with a prompt string or use a default
4 | read -r -p "${1:-Are you sure? [y/N]} " response
5 | case "$response" in
6 | [yY][eE][sS]|[yY])
7 | return 0
8 | ;;
9 | *)
10 | return 1
11 | ;;
12 | esac
13 | }
14 | confirm "$@"
15 |
--------------------------------------------------------------------------------
/Setup/automated/bin/dabit-setup-utility:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | function dabit-setup-utility(){
3 | if [ -z $1 ]; then
4 | echo "Help"
5 | elif [ $1 == "install" ]; then
6 | confirm "Going to install. Are you sure? [y/N]" && . "$DABIT_DIR/Setup/automated/install.sh"
7 | elif [ $1 == "update" ]; then
8 | confirm "Updating. Are you sure? [y/N]" && . "$DABIT_DIR/Setup/automated/update.sh"
9 | elif [ $1 == "reset" ]; then
10 | confirm "Resetting. Are you sure [y/N]" && . "$DABIT_DIR/Setup/automated/reset.sh"
11 | elif [ $1 == "backup" ]; then
12 | . "$DABIT_DIR/Setup/automated/backup.sh"
13 | elif [ $1 == "test" ]; then
14 | echo "Environment setup successful"
15 | echo ""
16 | echo "Please run the following commands:"
17 | echo " dabit-setup-utility install"
18 | else
19 | echo "invalid command"
20 | echo "help"
21 | fi
22 | }
23 | dabit-setup-utility $@
24 |
--------------------------------------------------------------------------------
/Setup/automated/bin/get_ip:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | function get_ip() {
3 | local hostnames=($(hostname -I))
4 | if [ -z "$hostnames" ]; then
5 | echo "127.0.0.1"
6 | else
7 | for i in "${hostnames[@]}"; do
8 | if [[ $i =~ ^([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$ ]]; then
9 | addr_ipv4=$i
10 | elif [[ $i =~ ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$ ]]; then
11 | addr_ipv6=$i
12 | fi
13 | done
14 | if [ -z $1 ]; then
15 | echo "${hostnames[0]}"
16 | elif [ $1 = "ipv4" ]; then
17 | if [ -n "$addr_ipv4" ]; then
18 | echo "$addr_ipv4"
19 | else
20 | echo "127.0.0.1"
21 | fi
22 | elif [ $1 = "ipv6" ]; then
23 | if [ -n "$addr_ipv6" ]; then
24 | echo "$addr_ipv6"
25 | else
26 | echo "::"
27 | fi
28 | fi
29 | fi
30 | }
31 | get_ip $1
32 |
--------------------------------------------------------------------------------
/Setup/automated/definitions.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | ###
4 | # Define definitions
5 | ###
6 |
7 | # Directory names
8 | _backup="backup"
9 | _catkin_ws="catkin_ws"
10 | _workspace="workspace"
11 | _tmp="tmp"
12 | _dabit_dir="$DABIT_DIR"
13 |
14 | # File Names
15 | _rosrc=".rosrc"
16 | _aliases=".dabit_aliases"
17 | _bashrc=".bashrc"
18 |
19 | # Where above directories and files are all located
20 | _user_dir="$HOME"
21 | _backup_dir="$_user_dir/$_backup"
22 | _catkin_ws_dir="$_user_dir/$_catkin_ws"
23 | _workspace_dir="$_user_dir/$_workspace"
24 | _tmp_dir="$_user_dir/$_tmp"
25 | _arduino_dir="$_user_dir/Arduino"
26 | _pwd=$(pwd)
27 |
28 | _rosrc_dir="$_user_dir/$_rosrc"
29 | _aliases_dir="$_user_dir/$_aliases"
30 | _bashrc_dir="$_user_dir/$_bashrc"
31 |
32 | declare -a _apt_packages=("ros-kinetic-rosserial*" "python3-pyqt5" "libopencv*" "libcgal-dev" "libcgal-qt5*" "ros-kinetic-pointcloud-to-laserscan" "libpcap-dev" "libsuitesparse-dev" "ros-kinetic-imu-tools" "libavresample-dev" "libgphoto2-dev" "tesseract-ocr" "libtesseract-dev" "liblept5" "libleptonica-dev" "libopenni2-dev" "libopenni-dev" "libunicap2-dev" "libxine2-dev" "libgstreamer1.0-dev" "libgdal-dev" "libgdcm2-dev" "libudev-dev" "ros-kinetic-pointcloud-to-laserscan")
33 | declare -a _remove_packages=()
34 |
35 | # Which Dabit Packages to install
36 | declare -a _ros_packages=("apriltags" "turtlebot_dabit" "turtlebot_dabit_description" "turtlebot_wanderer")
37 | declare -a _workspace_packages=("apriltags_cpp")
38 | _opencv_install_args="-DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DOPENCV_EXTRA_MODULES_PATH=$HOME/workspace/opencv_contrib-3.2.0/modules -DTesseract_INCLUDE_DIR=/usr/include/tesseract"
39 | declare -a _workspace_install_packages=("apriltags_cpp")
40 |
41 |
42 | # Miscelleneous Defines
43 | _arduino_tar="arduino-1.8.2-linux64.tar.xz"
44 |
--------------------------------------------------------------------------------
/Setup/automated/environment.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | CURRENT_DIR="$(dirname "${BASH_SOURCE[0]}")"
3 | CURRENT_DIR=${CURRENT_DIR%/Setup/automated}
4 |
5 | if [ "$CURRENT_DIR" == "." ]; then
6 | CURRENT_DIR=$CURRENT_DIR"/../.."
7 | elif [ "$CURRENT_DIR" == "turtlebot2-tutorials" ]; then
8 | CURRENT_DIR="$(pwd)/turtlebot2-tutorials"
9 | fi
10 |
11 | if [ -z "$DABIT_DIR" ]; then
12 | echo "export DABIT_DIR=$CURRENT_DIR" >> ${HOME}/.bashrc
13 | DABIT_DIR="$CURRENT_DIR"
14 | elif [ "$DABIT_DIR" != "$CURRENT_DIR" ]; then
15 | sed -i '1s!^!export DABIT_DIR='"$CURRENT_DIR"'\n!' ${HOME}/.bashrc
16 | echo $CURRENT_DIR" is different than "$DABIT_DIR
17 | echo "Setting DABIT_DIR environment variable to $CURRENT_DIR"
18 | DABIT_DIR="$CURRENT_DIR"
19 | fi
20 | export DABIT_DIR="$DABIT_DIR"
21 |
22 | echo "Password is needed to copy executable files"
23 | sudo cp -r "$DABIT_DIR/Setup/automated/bin/." /usr/local/bin
24 |
25 | cp -r "$DABIT_DIR/Setup/automated/ssh/." ${HOME}/.ssh
26 | chown ${USER} "${HOME}/.ssh/turtlebot_rsa"
27 | chown ${USER} "${HOME}/.ssh/turtlebot_rsa.pub"
28 | chmod 600 "${HOME}/.ssh/turtlebot_rsa"
29 | chmod 644 "${HOME}/.ssh/turtlebot_rsa.pub"
30 | cat ${HOME}/.ssh/turtlebot_rsa.pub >> ${HOME}/.ssh/authorized_keys
31 |
32 | cp -r "$DABIT_DIR/Setup/automated/Desktop/." ${HOME}/Desktop
33 |
34 | cp "$DABIT_DIR/Setup/.rosrc" ${HOME}/.rosrc
35 | cp ${HOME}/.bashrc ${HOME}/.bashrc_backup
36 |
37 | remove_call(){
38 | sed -i 's/'"$1"'/#&/g' "$2"
39 | }
40 |
41 | sed -i -e '/-f ~\/.dabit_aliases/,+3d' ${HOME}/.bashrc
42 | sed -i -e '/-f ~\/.rosrc/,+12d' ${HOME}/.bashrc
43 | remove_call "source \/opt\/ros\/kinetic\/setup.bash" ${HOME}/.bashrc
44 | remove_call "export TURTLEBOT_BASE=" ${HOME}/.bashrc
45 | remove_call "export TURTLEBOT_3D_SENSOR=" ${HOME}/.bashrc
46 | remove_call "export TURTLEBOT_STACK=" ${HOME}/.bashrc
47 | remove_call "export ROS_MASTER_URI=" ${HOME}/.bashrc
48 | remove_call "export ROS_IP=" ${HOME}/.bashrc
49 | remove_call "export ROS_HOSTNAME=" ${HOME}/.bashrc
50 | remove_call "export ROS_HOME=" ${HOME}/.bashrc
51 |
52 | echo "
53 | if [ -f ~/.rosrc ]; then
54 | . ~/.rosrc
55 | fi
56 |
57 | if [ -f /opt/ros/kinetic/setup.bash ]; then
58 | . /opt/ros/kinetic/setup.bash
59 | fi
60 |
61 | if [ -f ~/catkin_ws/devel/setup.bash ]; then
62 | . ~/catkin_ws/devel/setup.bash
63 | fi
64 | " >> ${HOME}/.bashrc
65 |
66 | eval "$(ssh-agent -s)"
67 | ssh-add ~/.ssh/turtlebot_rsa
68 |
--------------------------------------------------------------------------------
/Setup/automated/install.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | ###
4 | # Define definitions
5 | ###
6 |
7 | . "$DABIT_DIR/Setup/automated/definitions.sh"
8 |
9 | ###
10 | # Backup Files
11 | ###
12 |
13 | . "$_dabit_dir/Setup/automated/backup.sh" "mv"
14 |
15 | ###
16 | # Workspace Setup
17 | ###
18 |
19 | __setup_workspace(){
20 | # Set up new workspace
21 | mkdir -p "$_catkin_ws_dir"
22 | mkdir -p "$_workspace_dir"
23 | mkdir -p "$_tmp_dir"
24 | }
25 | echo "Setting up new workspace"
26 | __setup_workspace
27 |
28 | ###
29 | # Catkin Setup
30 | ###
31 |
32 | __make_catkin_workspace(){
33 | # Set up catkin workspace
34 | mkdir -p "$_catkin_ws_dir/src"
35 | catkin_make --directory "$_catkin_ws_dir"
36 | }
37 |
38 | echo "Making new catkin workspace"
39 | __make_catkin_workspace
40 |
41 | ###
42 | # Copy Packages
43 | ###
44 |
45 | __copy_catkin_ws(){
46 | for i in "${_ros_packages[@]}"
47 | do
48 | cp -rv "$_dabit_dir/Setup/catkin_ws/src/$i" "$_catkin_ws_dir/src"
49 | done
50 | for i in "${_workspace_packages[@]}"
51 | do
52 | cp -rv "$_dabit_dir/Setup/workspace/$i" "$_workspace_dir"
53 | done
54 | }
55 |
56 | echo "Copying ROS packages"
57 | __copy_catkin_ws
58 |
59 | ###
60 | # Install Dependencies
61 | ###
62 |
63 | __install_dependencies(){
64 | echo "Sudo is needed for installing packages"
65 | sudo apt install ${_apt_packages[@]} -y
66 | }
67 |
68 | echo "Installing dependencies"
69 | __install_dependencies
70 |
71 | ###
72 | # Install Arduino IDE
73 | ###
74 |
75 | __install_arduino_ide(){
76 | arduino_folder = ${_arduino_tar%-linux64.tar.xz}
77 | if [ -z "$_user_dir/$arduino_folder" ]; then
78 | wget "https://downloads.arduino.cc/$_arduino_tar" -P "$_tmp_dir"
79 | cd "$_tmp_dir"
80 | tar -xvf "$_tmp_dir/$_arduino_tar" -C "$_user_dir/$arduino_folder"
81 | cd "$_user_dir/arduino*"
82 | . install.sh
83 | mkdir -p "$_user_dir/Arduino/libraries"
84 | cd "$_user_dir/Arduino/libraries"
85 | rosrun rosserial_arduino make_libraries.py .
86 | sudo usermod -a -G dialout turtlebot
87 | fi
88 | mkdir -p "$_user_dir/Arduino"
89 | cp -r "$_dabit_dir/Setup/Arduino/." "$_user_dir/Arduino"
90 | }
91 |
92 | echo "Installing Arduino IDE"
93 | __install_arduino_ide
94 |
95 | ###
96 | # Build Packages
97 | ###
98 |
99 | __build_ws(){
100 | # Build workspace stuff
101 | for i in "${_workspace_install_packages[@]}"
102 | do
103 | cd "$_workspace_dir/$i"
104 | mkdir "build"
105 | cd "build"
106 | cmake ".."
107 | make
108 | sudo make install
109 | done
110 |
111 | catkin_make --directory "$_catkin_ws_dir"
112 | }
113 |
114 | echo "Building Workspace"
115 | __build_ws
116 |
117 |
118 | ###
119 | # Running Test Code
120 | ###
121 |
122 | __run_checks(){
123 | echo "Checks not implemented yet"
124 | }
125 |
126 | echo "Running Checks and Tests"
127 | __run_checks
128 |
129 | cd $_PWD
130 | . ~/.bashrc
131 | echo "Installation Complete"
132 |
--------------------------------------------------------------------------------
/Setup/automated/reset.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | ###
4 | # Define definitions
5 | ###
6 |
7 | . "$DABIT_DIR/Setup/automated/definitions.sh"
8 |
9 | ###
10 | # Reset Files
11 | ###
12 |
13 | confirm "Resetting Workspace. Are you sure? [y/N]"
14 | if [[ "$?" -eq 0 ]]; then
15 | . "$_dabit_dir/Setup/automated/backup.sh" "mv"
16 | . "$_dabit_dir/Setup/automated/automate.sh"
17 | rm ~/.config/ros.org/rqt_gui.ini
18 | rm ~/.config/Trolltech.conf
19 | fi
20 |
21 |
22 | echo "RESET COMPLETE"
23 |
--------------------------------------------------------------------------------
/Setup/automated/ssh/turtlebot_rsa.pub:
--------------------------------------------------------------------------------
1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCu7aXZNtQYfYLCzQMZQPyNLM4raoyDyvetwjlsclxgiC1H4NodfxFeM7VMqzM1GAElB0HPwJYjunLGuYV7amz5Y+3MWoDthHe+/huqZlZMoRujRXLlusygosbaUMv8EtcHstmFLeVhVL5Qwd/BGGqrVn3TYrMeuBL7ysatdhprvMcvCrlbUnRdf5Jlz2C8P2DExDgeQ+huXaKrXKPZPxgdnpv0gQO0/GLFm9MIz1y1ZqiYxwEekQ+4fOa17Ik/gxwO08wGdePgmOdZV/pDN652RXZ1j8gi/jTcbLULGj5v1EsqRDdsxX4P79j4sMq+/iPxcP2NYKTZcoLg3tz0eiQOmMCBXTk3XFko4IrKRTvnkseD5qC6AhEeGW4qdTkPdoHHiDgQ/pIE2AieRQUEeuPfk+Uw3kgpKdw0dHJT9U5E/FpTnTlrhj612XMMqijLJ49e/I73XVj8F1JU2fJVA3mgVrRA0/noAhHFKMVEI+LCOJrGgNDzCPcQ02PenQvaUfdWxIqWFo2woYHrepmE2hoZwSRca1JhGpgI996saFomyZ4X4VXWJtJ5xlXshCSsM5KS8fiLGhZGOFeuadxO8bM+xj6t3bhF8wUuZrJouAI16PplwYtCdMDg8AKl97XrIZr9CR/EGC3BtUCLdxo7Y3yswhfnxNS3E1WvWJa1I/cDGQ== user@dabit
2 |
--------------------------------------------------------------------------------
/Setup/automated/update.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | ###
4 | # Define definitions
5 | ###
6 |
7 | . "$DABIT_DIR/Setup/automated/definitions.sh"
8 |
9 | ###
10 | # Update Files
11 | ###
12 |
13 | __update_files(){
14 | cd "$_dabit_dir"
15 | if [ ! -d "$_dabit_dir/.git" ]; then
16 | echo "Not a git repository"
17 | return 1
18 | fi
19 | _git_status=$(git pull | grep "up-to-date")
20 | if [ -z "$_git_status" ]; then
21 | echo "Updates found."
22 | else
23 | echo "No updates found."
24 | fi
25 |
26 | echo "Updating not fully written."
27 | echo "Please run the following commands:"
28 | echo " dabit-setup-utility reset"
29 | echo " dabit-setup-utility install"
30 | }
31 |
32 | confirm "Updating all files. If updates are found, all exising code is moved, and the new code is installed.
33 | Are you sure? [y/N]"
34 | if [[ "$?" -eq 0 ]]; then
35 | __update_files
36 | fi
37 |
38 | cd "$_pwd"
39 | echo "UPDATE COMPLETE"
40 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | /opt/ros/kinetic/share/catkin/cmake/toplevel.cmake
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/razor_imu_9dof/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 2.8.3)
2 | project(razor_imu_9dof)
3 |
4 | find_package(catkin REQUIRED COMPONENTS dynamic_reconfigure)
5 |
6 | generate_dynamic_reconfigure_options(cfg/imu.cfg)
7 |
8 | catkin_package(DEPENDS CATKIN DEPENDS dynamic_reconfigure)
9 |
10 | install(DIRECTORY launch
11 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
12 | )
13 |
14 | install(DIRECTORY config
15 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
16 | )
17 |
18 | install(DIRECTORY cfg
19 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
20 | )
21 |
22 | install(DIRECTORY src
23 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
24 | )
25 |
26 | install(DIRECTORY magnetometer_calibration
27 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
28 | )
29 |
30 | catkin_install_python(PROGRAMS
31 | nodes/imu_node.py
32 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/nodes
33 | )
34 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/razor_imu_9dof/cfg/imu.cfg:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | PACKAGE = "razor_imu_m0"
3 |
4 | from dynamic_reconfigure.parameter_generator_catkin import *
5 |
6 | gen = ParameterGenerator()
7 | gen.add("yaw_calibration", double_t, 0, "Yaw Calibration", 0, -10, 10)
8 |
9 | exit(gen.generate(PACKAGE, "razor_imu_9dof", "imu"))
10 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/razor_imu_9dof/config/my_razor.yaml:
--------------------------------------------------------------------------------
1 | ## USB port
2 | port: /dev/ttyACM0
3 |
4 |
5 | ##### Calibration ####
6 | ### accelerometer
7 | accel_x_min: -250.0
8 | accel_x_max: 250.0
9 | accel_y_min: -250.0
10 | accel_y_max: 250.0
11 | accel_z_min: -250.0
12 | accel_z_max: 250.0
13 |
14 | ### magnetometer
15 | # standard calibration
16 | magn_x_min: -600.0
17 | magn_x_max: 600.0
18 | magn_y_min: -600.0
19 | magn_y_max: 600.0
20 | magn_z_min: -600.0
21 | magn_z_max: 600.0
22 |
23 | # extended calibration
24 | calibration_magn_use_extended: false
25 | magn_ellipsoid_center: [0, 0, 0]
26 | magn_ellipsoid_transform: [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
27 |
28 | # AHRS to robot calibration
29 | imu_yaw_calibration: 0.0
30 |
31 | ### gyroscope
32 | gyro_average_offset_x: 0.0
33 | gyro_average_offset_y: 0.0
34 | gyro_average_offset_z: 0.0
35 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/razor_imu_9dof/config/razor.yaml:
--------------------------------------------------------------------------------
1 | # USB port
2 | port: /dev/ttyUSB0
3 |
4 |
5 | ##### Calibration ####
6 | ### accelerometer
7 | accel_x_min: -250.0
8 | accel_x_max: 250.0
9 | accel_y_min: -250.0
10 | accel_y_max: 250.0
11 | accel_z_min: -250.0
12 | accel_z_max: 250.0
13 |
14 | ### magnetometer
15 | # standard calibration
16 | magn_x_min: -600.0
17 | magn_x_max: 600.0
18 | magn_y_min: -600.0
19 | magn_y_max: 600.0
20 | magn_z_min: -600.0
21 | magn_z_max: 600.0
22 |
23 | # extended calibration
24 | calibration_magn_use_extended: false
25 | magn_ellipsoid_center: [0, 0, 0]
26 | magn_ellipsoid_transform: [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
27 |
28 | # AHRS to robot calibration
29 | imu_yaw_calibration: 0.0
30 |
31 | ### gyroscope
32 | gyro_average_offset_x: 0.0
33 | gyro_average_offset_y: 0.0
34 | gyro_average_offset_z: 0.0
35 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/razor_imu_9dof/launch/start.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/razor_imu_9dof/magnetometer_calibration/Matlab/magnetometer_calibration/ellipsoid_fit_license.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2009, Yury Petrov
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are
6 | met:
7 |
8 | * Redistributions of source code must retain the above copyright
9 | notice, this list of conditions and the following disclaimer.
10 | * Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in
12 | the documentation and/or other materials provided with the distribution
13 |
14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
18 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 | POSSIBILITY OF SUCH DAMAGE.
25 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/razor_imu_9dof/magnetometer_calibration/Processing/Magnetometer_calibration/data/Univers-66.vlw:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/razor_imu_9dof/magnetometer_calibration/Processing/Magnetometer_calibration/data/Univers-66.vlw
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/razor_imu_9dof/package.xml:
--------------------------------------------------------------------------------
1 |
2 | razor_imu_9dof
3 | 2.0.0
4 |
5 | The navigation package is used to determine the current pose of the car (Velocity, Odom)
6 | razor_imu_9dof is a package that provides a ROS driver
7 | for the Sparkfun Razor IMU 9DOF. It also provides Arduino
8 | firmware that runs on the Razor board, and which must be
9 | installed on the Razor board for the system to work. A node
10 | which displays the attitude (roll, pitch and yaw) of the Razor board
11 | (or any IMU) is provided for testing.
12 |
13 | Cosmo Borsky
14 |
15 | BSD
16 |
17 | Tang Tiong Yew
18 | Kristof Robot
19 | Paul Bouchier
20 | Peter Bartz
21 | Cosmo Borsky
22 |
23 | http://ros.org/wiki/razor_imu_9dof
24 |
25 | catkin
26 | dynamic_reconfigure
27 |
28 | rospy
29 | tf
30 | sensor_msgs
31 | python-serial
32 | dynamic_reconfigure
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/arduino.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/fiducial.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/imu.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/3dsensor/astra.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/3dsensor/asus_xtion_pro.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/3dsensor/asus_xtion_pro_offset.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/3dsensor/kinect.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/3dsensor/r200.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/amcl/amcl.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/amcl/astra_amcl.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/amcl/asus_xtion_pro_amcl.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/amcl/asus_xtion_pro_offset_amcl.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/amcl/kinect_amcl.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/capabilities.launch.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | - minimal_pkg
25 | - std_capabilities
26 | - turtlebot_capabilities
27 | - kobuki_capabilities
28 |
29 |
30 | - 'std_capabilities/Navigation2D'
31 | - 'std_capabilities/MultiEchoLaserSensor'
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/description.launch.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/gmapping/astra_gmapping.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/gmapping/asus_xtion_pro_gmapping.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/gmapping/asus_xtion_pro_offset_gmapping.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/gmapping/gmapping.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/gmapping/kinect_gmapping.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/gmapping/r200_gmapping.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/kobuki/bumper2pc.launch.xml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/kobuki/mobile_base.launch.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/kobuki/safety_controller.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/mobile_base.launch.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/move_base.launch.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/netbook.launch.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/robot.launch.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/safety_controller.launch.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/velocity_smoother.launch.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/includes/zeroconf.launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/minimal.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/quanergy.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/quanergy_lidarscan.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/quanergy_test.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/robot_model.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/rospy_example_class.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/launch/wanderer.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | turtlebot_dabit
4 | 0.0.0
5 | The turtlebot_dabit package
6 |
7 |
8 |
9 |
10 | user
11 |
12 |
13 |
14 |
15 |
16 | TODO
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 | catkin
42 | rospy
43 | cv_bridge
44 | image_transport
45 | libopencv-dev
46 | roscpp
47 | sensor_msgs
48 | std_msgs
49 | pcl_conversions
50 | pcl_ros
51 | libpcl-all-dev
52 | message_generation
53 | rospy
54 | cv_bridge
55 | image_transport
56 | libopencv-dev
57 | roscpp
58 | sensor_msgs
59 | std_msgs
60 | pcl_conversions
61 | pcl_ros
62 | libpcl-all
63 | message_runtime
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/3dsensor.yaml:
--------------------------------------------------------------------------------
1 | # This is only a very minimal set of parameters that really should be configured for the kinect.
2 | # See http://www.ros.org/wiki/openni_camera for more information.
3 |
4 | # Note - this is not working in groovy with asus. It may need a different configuration as well.
5 |
6 | # Defaults for the frame id's are fine
7 | rgb_frame_id: /camera_rgb_optical_frame
8 | depth_frame_id: /camera_depth_optical_frame
9 | # Configured by launcher args in 3dsensor.launch
10 | # depth_registration: true
11 | image_mode: 2
12 | depth_mode: 2
13 | # why is this non-zero?
14 | depth_time_offset: -0.055
15 | image_time_offset: 0
16 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/astra_costmap_params.yaml:
--------------------------------------------------------------------------------
1 | #A dummy file loaded when no custom param file is given
2 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/asus_xtion_pro_costmap_params.yaml:
--------------------------------------------------------------------------------
1 | #A dummy file loaded when no custom param file is given
2 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/asus_xtion_pro_offset_costmap_params.yaml:
--------------------------------------------------------------------------------
1 | #A dummy file loaded when no custom param file is given
2 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/capabilities/defaults_tb2.yaml:
--------------------------------------------------------------------------------
1 | # default providers for the TurtleBot 2
2 | defaults:
3 | 'kobuki_capabilities/KobukiBumper': 'kobuki_capabilities/kobuki_bumper'
4 | 'kobuki_capabilities/KobukiBringup': 'kobuki_capabilities/kobuki_bringup'
5 | 'kobuki_capabilities/KobukiCliffDetection': 'kobuki_capabilities/kobuki_cliff_detection'
6 | 'kobuki_capabilities/KobukiLED': 'kobuki_capabilities/kobuki_led'
7 | 'kobuki_capabilities/KobukiLED1': 'kobuki_capabilities/kobuki_led1'
8 | 'kobuki_capabilities/KobukiLED2': 'kobuki_capabilities/kobuki_led2'
9 | 'kobuki_capabilities/KobukiWheelDropDetection': 'kobuki_capabilities/kobuki_wheel_drop_detection'
10 | 'std_capabilities/Diagnostics': 'turtlebot_capabilities/diagnostics'
11 | 'std_capabilities/DifferentialMobileBase': 'kobuki_capabilities/kobuki_differential_mobile_base'
12 | 'std_capabilities/LaserSensor': 'turtlebot_capabilities/depthimage_to_laserscan'
13 | 'std_capabilities/RobotStatePublisher': 'turtlebot_capabilities/robot_state_publisher'
14 | 'std_capabilities/RGBDSensor': 'turtlebot_capabilities/rgbd_sensor'
15 | 'turtlebot_capabilities/TurtleBotBringup': 'turtlebot_capabilities/turtlebot2_bringup'
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/costmap_common_params.yaml:
--------------------------------------------------------------------------------
1 | max_obstacle_height: 0.60 # assume something like an arm is mounted on top of the robot
2 |
3 | # Obstacle Cost Shaping (http://wiki.ros.org/costmap_2d/hydro/inflation)
4 | robot_radius: 0.18 # distance a circular robot should be clear of the obstacle (kobuki: 0.18)
5 | # footprint: [[x0, y0], [x1, y1], ... [xn, yn]] # if the robot is not circular
6 |
7 | map_type: voxel
8 |
9 | obstacle_layer:
10 | enabled: true
11 | max_obstacle_height: 0.6
12 | origin_z: 0.0
13 | z_resolution: 0.2
14 | z_voxels: 2
15 | unknown_threshold: 15
16 | mark_threshold: 0
17 | combination_method: 1
18 | track_unknown_space: true #true needed for disabling global path planning through unknown space
19 | obstacle_range: 2.5
20 | raytrace_range: 3.0
21 | origin_z: 0.0
22 | z_resolution: 0.2
23 | z_voxels: 2
24 | publish_voxel_map: false
25 | observation_sources: scan bump
26 | scan:
27 | data_type: LaserScan
28 | topic: scan
29 | marking: true
30 | clearing: true
31 | min_obstacle_height: 0.25
32 | max_obstacle_height: 0.35
33 | bump:
34 | data_type: PointCloud2
35 | topic: mobile_base/sensors/bumper_pointcloud
36 | marking: true
37 | clearing: false
38 | min_obstacle_height: 0.0
39 | max_obstacle_height: 0.15
40 | # for debugging only, let's you see the entire voxel grid
41 |
42 | #cost_scaling_factor and inflation_radius were now moved to the inflation_layer ns
43 | inflation_layer:
44 | enabled: true
45 | cost_scaling_factor: 5.0 # exponential rate at which the obstacle cost drops off (default: 10)
46 | inflation_radius: 0.5 # max. distance from an obstacle at which costs are incurred for planning paths.
47 |
48 | static_layer:
49 | enabled: true
50 |
51 |
52 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/create/capability_providers.yaml:
--------------------------------------------------------------------------------
1 | # default providers for the Create
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/create/diagnostics.yaml:
--------------------------------------------------------------------------------
1 | pub_rate: 1.0 # Optional
2 | base_path: '' # Optional, prepended to all diagnostic output
3 | analyzers:
4 | nodes:
5 | type: diagnostic_aggregator/GenericAnalyzer
6 | path: 'Nodes'
7 | timeout: 5.0
8 | contains: ['Node']
9 | mode:
10 | type: diagnostic_aggregator/GenericAnalyzer
11 | path: 'Mode'
12 | timeout: 5.0
13 | startswith: ['Operating Mode']
14 | sensors:
15 | type: GenericAnalyzer
16 | path: 'Sensors'
17 | timeout: 5.0
18 | startswith: ['Cliff Sensor', 'Wall Sensor', 'Gyro Sensor']
19 | power:
20 | type: diagnostic_aggregator/GenericAnalyzer
21 | path: 'Power System'
22 | timeout: 5.0
23 | startswith: ['Battery', 'Charging Sources', 'Laptop Battery']
24 | digital_io:
25 | type: diagnostic_aggregator/GenericAnalyzer
26 | path: 'Digital IO'
27 | timeout: 5.0
28 | startswith: ['Digital Outputs']
29 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/defaults/capability_providers.yaml:
--------------------------------------------------------------------------------
1 | # base-agnostic default capability providers for the TurtleBot
2 | defaults:
3 | std_capabilities/Diagnostics: 'turtlebot_capabilities/diagnostics'
4 | std_capabilities/LaserSensor: 'turtlebot_capabilities/depthimage_to_laserscan'
5 | std_capabilities/RGBDSensor: 'turtlebot_capabilities/kinect_rgbd_sensor'
6 | std_capabilities/RobotStatePublisher: 'turtlebot_capabilities/robot_state_publisher'
7 | turtlebot_capabilities/TurtleBotBringup: 'turtlebot_capabilities/tb_bringup'
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/defaults/smoother.yaml:
--------------------------------------------------------------------------------
1 | # Default parameters used by the yocs_velocity_smoother module.
2 | # This isn't used by minimal.launch per se, rather by everything
3 | # which runs on top.
4 |
5 | # Mandatory parameters
6 | speed_lim_v: 0.2
7 | speed_lim_w: 5.4
8 |
9 | accel_lim_v: 0.3 # maximum is actually 2.0, but we push it down to be smooth
10 | accel_lim_w: 1.0
11 |
12 | # Optional parameters
13 | frequency: 20.0
14 | decel_factor: 1.5
15 |
16 | # Robot velocity feedback type:
17 | # 0 - none (default)
18 | # 1 - odometry
19 | # 2 - end robot commands
20 | robot_feedback: 2
21 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/dummy.yaml:
--------------------------------------------------------------------------------
1 | #A dummy file loaded when no custom param file is given
2 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/dwa_local_planner_params.yaml:
--------------------------------------------------------------------------------
1 | DWAPlannerROS:
2 |
3 | # Robot Configuration Parameters - Kobuki
4 | max_vel_x: 0.25 # 0.55
5 | min_vel_x: 0.0
6 |
7 | max_vel_y: 0.0 # diff drive robot
8 | min_vel_y: 0.0 # diff drive robot
9 |
10 | max_trans_vel: 0.2 # choose slightly less than the base's capability
11 | min_trans_vel: 0.03 # this is the min trans velocity when there is negligible rotational velocity
12 | trans_stopped_vel: 0.1
13 |
14 | # Warning!
15 | # do not set min_trans_vel to 0.0 otherwise dwa will always think translational velocities
16 | # are non-negligible and small in place rotational velocities will be created.
17 |
18 | max_rot_vel: 2.0 # choose slightly less than the base's capability
19 | min_rot_vel: 0.3 # this is the min angular velocity when there is negligible translational velocity
20 | rot_stopped_vel: 0.4
21 |
22 | acc_lim_x: 0.5 # maximum is theoretically 2.0, but we
23 | acc_lim_theta: 1.0
24 | acc_lim_y: 0.0 # diff drive robot
25 |
26 | # Goal Tolerance Parameters
27 | yaw_goal_tolerance: 0.35 # 0.05
28 | xy_goal_tolerance: 0.25 # 0.10
29 | # latch_xy_goal_tolerance: false
30 |
31 | # Forward Simulation Parameters
32 | sim_time: 1.0 # 1.7
33 | vx_samples: 6 # 3
34 | vy_samples: 1 # diff drive robot, there is only one sample
35 | vtheta_samples: 20 # 20
36 |
37 | # Trajectory Scoring Parameters
38 | path_distance_bias: 64.0 # 32.0 - weighting for how much it should stick to the global path plan
39 | goal_distance_bias: 24.0 # 24.0 - wighting for how much it should attempt to reach its goal
40 | occdist_scale: 0.5 # 0.01 - weighting for how much the controller should avoid obstacles
41 | forward_point_distance: 0.325 # 0.325 - how far along to place an additional scoring point
42 | stop_time_buffer: 0.2 # 0.2 - amount of time a robot must stop in before colliding for a valid traj.
43 | scaling_speed: 0.25 # 0.25 - absolute velocity at which to start scaling the robot's footprint
44 | max_scaling_factor: 0.2 # 0.2 - how much to scale the robot's footprint when at speed.
45 |
46 | # Oscillation Prevention Parameters
47 | oscillation_reset_dist: 0.05 # 0.05 - how far to travel before resetting oscillation flags
48 |
49 | # Debugging
50 | publish_traj_pc : true
51 | publish_cost_grid_pc: true
52 | global_frame_id: odom
53 |
54 |
55 | # Differential-drive robot configuration - necessary?
56 | # holonomic_robot: false
57 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/global_costmap_params.yaml:
--------------------------------------------------------------------------------
1 | global_costmap:
2 | global_frame: /map
3 | robot_base_frame: /base_footprint
4 | update_frequency: 1.0
5 | publish_frequency: 0.5
6 | static_map: true
7 | transform_tolerance: 0.5
8 | plugins:
9 | - {name: static_layer, type: "costmap_2d::StaticLayer"}
10 | - {name: obstacle_layer, type: "costmap_2d::VoxelLayer"}
11 | - {name: inflation_layer, type: "costmap_2d::InflationLayer"}
12 |
13 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/global_planner_params.yaml:
--------------------------------------------------------------------------------
1 |
2 | GlobalPlanner: # Also see: http://wiki.ros.org/global_planner
3 | old_navfn_behavior: false # Exactly mirror behavior of navfn, use defaults for other boolean parameters, default false
4 | use_quadratic: true # Use the quadratic approximation of the potential. Otherwise, use a simpler calculation, default true
5 | use_dijkstra: true # Use dijkstra's algorithm. Otherwise, A*, default true
6 | use_grid_path: false # Create a path that follows the grid boundaries. Otherwise, use a gradient descent method, default false
7 |
8 | allow_unknown: true # Allow planner to plan through unknown space, default true
9 | #Needs to have track_unknown_space: true in the obstacle / voxel layer (in costmap_commons_param) to work
10 | planner_window_x: 0.0 # default 0.0
11 | planner_window_y: 0.0 # default 0.0
12 | default_tolerance: 0.0 # If goal in obstacle, plan to the closest point in radius default_tolerance, default 0.0
13 |
14 | publish_scale: 100 # Scale by which the published potential gets multiplied, default 100
15 | planner_costmap_publish_frequency: 0.0 # default 0.0
16 |
17 | lethal_cost: 253 # default 253
18 | neutral_cost: 50 # default 50
19 | cost_factor: 3.0 # Factor to multiply each cost from costmap by, default 3.0
20 | publish_potential: true # Publish Potential Costmap (this is not like the navfn pointcloud2 potential), default true
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/kinect/capability_providers.yaml:
--------------------------------------------------------------------------------
1 | # default capability providers for the Microsoft Kinect
2 | defaults:
3 | 'std_capabilities/RGBDSensor': 'turtlebot_capabilities/kinect_rgbd_sensor'
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/kinect_costmap_params.yaml:
--------------------------------------------------------------------------------
1 | #A dummy file loaded when no custom param file is given
2 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/kobuki/capability_providers.yaml:
--------------------------------------------------------------------------------
1 | # default providers for the Kobuki
2 | defaults:
3 | 'kobuki_capabilities/KobukiBringup': 'kobuki_capabilities/kobuki_bringup'
4 | 'kobuki_capabilities/KobukiLED1': 'kobuki_capabilities/kobuki_led1'
5 | 'kobuki_capabilities/KobukiLED2': 'kobuki_capabilities/kobuki_led2'
6 | 'kobuki_capabilities/LED': 'kobuki_capabilities/kobuki_led'
7 | 'std_capabilities/DifferentialMobileBase': 'kobuki_capabilities/kobuki_differential_mobile_base'
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/kobuki/diagnostics.yaml:
--------------------------------------------------------------------------------
1 | # The remove_prefix is important - it corresponds to the name of
2 | # the node that is automatically prefixed to cpp diagnostic task
3 | # names. In our case it's the mobile base nodelet manager name.
4 | # Android is not expecting this, so we need to remove it.
5 |
6 | pub_rate: 1.0 # Optional
7 | base_path: '' # Optional, prepended to all diagnostic output
8 | analyzers:
9 | power:
10 | type: diagnostic_aggregator/GenericAnalyzer
11 | path: 'Power System'
12 | timeout: 5.0
13 | contains: ['Battery', 'Laptop Battery']
14 | remove_prefix: mobile_base_nodelet_manager
15 | kobuki:
16 | type: diagnostic_aggregator/GenericAnalyzer
17 | path: 'Kobuki'
18 | timeout: 5.0
19 | contains: ['Watchdog', 'Motor State']
20 | remove_prefix: mobile_base_nodelet_manager
21 | sensors:
22 | type: diagnostic_aggregator/GenericAnalyzer
23 | path: 'Sensors'
24 | timeout: 5.0
25 | contains: ['Cliff Sensor', 'Wall Sensor', 'Wheel Drop', 'Motor Current', 'Gyro Sensor']
26 | remove_prefix: mobile_base_nodelet_manager
27 | input_ports:
28 | type: diagnostic_aggregator/GenericAnalyzer
29 | path: 'Input Ports'
30 | timeout: 5.0
31 | contains: ['Digital Input', 'Analog Input']
32 | remove_prefix: mobile_base_nodelet_manager
33 | # nodes:
34 | # type: diagnostic_aggregator/GenericAnalyzer
35 | # path: 'Nodes'
36 | # timeout: 5.0
37 | # contains: ['Node']
38 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/local_costmap_params.yaml:
--------------------------------------------------------------------------------
1 | local_costmap:
2 | global_frame: odom
3 | robot_base_frame: /base_footprint
4 | update_frequency: 5.0
5 | publish_frequency: 2.0
6 | static_map: false
7 | rolling_window: true
8 | width: 4.0
9 | height: 4.0
10 | resolution: 0.05
11 | transform_tolerance: 0.5
12 | plugins:
13 | - {name: obstacle_layer, type: "costmap_2d::VoxelLayer"}
14 | - {name: inflation_layer, type: "costmap_2d::InflationLayer"}
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/move_base_params.yaml:
--------------------------------------------------------------------------------
1 | # Move base node parameters. For full documentation of the parameters in this file, please see
2 | #
3 | # http://www.ros.org/wiki/move_base
4 | #
5 | shutdown_costmaps: false
6 |
7 | controller_frequency: 5.0
8 | controller_patience: 3.0
9 |
10 |
11 | planner_frequency: 1.0
12 | planner_patience: 5.0
13 |
14 | oscillation_timeout: 10.0
15 | oscillation_distance: 0.2
16 |
17 | # local planner - default is trajectory rollout
18 | base_local_planner: "dwa_local_planner/DWAPlannerROS"
19 |
20 | base_global_planner: "navfn/NavfnROS" #alternatives: global_planner/GlobalPlanner, carrot_planner/CarrotPlanner
21 |
22 |
23 | #We plan to integrate recovery behaviors for turtlebot but currently those belong to gopher and still have to be adapted.
24 | ## recovery behaviors; we avoid spinning, but we need a fall-back replanning
25 | #recovery_behavior_enabled: true
26 |
27 | #recovery_behaviors:
28 | #- name: 'super_conservative_reset1'
29 | #type: 'clear_costmap_recovery/ClearCostmapRecovery'
30 | #- name: 'conservative_reset1'
31 | #type: 'clear_costmap_recovery/ClearCostmapRecovery'
32 | #- name: 'aggressive_reset1'
33 | #type: 'clear_costmap_recovery/ClearCostmapRecovery'
34 | #- name: 'clearing_rotation1'
35 | #type: 'rotate_recovery/RotateRecovery'
36 | #- name: 'super_conservative_reset2'
37 | #type: 'clear_costmap_recovery/ClearCostmapRecovery'
38 | #- name: 'conservative_reset2'
39 | #type: 'clear_costmap_recovery/ClearCostmapRecovery'
40 | #- name: 'aggressive_reset2'
41 | #type: 'clear_costmap_recovery/ClearCostmapRecovery'
42 | #- name: 'clearing_rotation2'
43 | #type: 'rotate_recovery/RotateRecovery'
44 |
45 | #super_conservative_reset1:
46 | #reset_distance: 3.0
47 | #conservative_reset1:
48 | #reset_distance: 1.5
49 | #aggressive_reset1:
50 | #reset_distance: 0.0
51 | #super_conservative_reset2:
52 | #reset_distance: 3.0
53 | #conservative_reset2:
54 | #reset_distance: 1.5
55 | #aggressive_reset2:
56 | #reset_distance: 0.0
57 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/mux.yaml:
--------------------------------------------------------------------------------
1 | # Created on: Oct 29, 2012
2 | # Author: jorge
3 | # Configuration for subscribers to multiple cmd_vel sources.
4 | #
5 | # Individual subscriber configuration:
6 | # name: Source name
7 | # topic: The topic that provides cmd_vel messages
8 | # timeout: Time in seconds without incoming messages to consider this topic inactive
9 | # priority: Priority: an UNIQUE unsigned integer from 0 (lowest) to MAX_INT
10 | # short_desc: Short description (optional)
11 |
12 | subscribers:
13 | - name: "Safe reactive controller"
14 | topic: "input/safety_controller"
15 | timeout: 0.2
16 | priority: 10
17 | - name: "Teleoperation"
18 | topic: "input/teleop"
19 | timeout: 1.0
20 | priority: 7
21 | - name: "Switch"
22 | topic: "input/switch"
23 | timeout: 1.0
24 | priority: 6
25 | - name: "Navigation"
26 | topic: "input/navi"
27 | timeout: 1.0
28 | priority: 5
29 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/navfn_global_planner_params.yaml:
--------------------------------------------------------------------------------
1 |
2 | NavfnROS:
3 | visualize_potential: false #Publish potential for rviz as pointcloud2, not really helpful, default false
4 | allow_unknown: true #Specifies whether or not to allow navfn to create plans that traverse unknown space, default true
5 | #Needs to have track_unknown_space: true in the obstacle / voxel layer (in costmap_commons_param) to work
6 | planner_window_x: 0.0 #Specifies the x size of an optional window to restrict the planner to, default 0.0
7 | planner_window_y: 0.0 #Specifies the y size of an optional window to restrict the planner to, default 0.0
8 |
9 | default_tolerance: 0.0 #If the goal is in an obstacle, the planer will plan to the nearest point in the radius of default_tolerance, default 0.0
10 | #The area is always searched, so could be slow for big values
11 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/preferred_rapp.yaml:
--------------------------------------------------------------------------------
1 | # Uncomment and modify below to explicitly set the preferred
2 | # implementation for an ancestor rapp specification:
3 | preferred:
4 | - rocon_apps/chirp: 'rocon_apps/moo_chirp'
5 | # - rocon_apps/chirp: 'rocon_apps/meow_chirp'
6 | # and when an ancestor is an implementation...
7 | # - rocon_apps/talker: 'rocon_apps/talker'
8 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/r200_costmap_params.yaml:
--------------------------------------------------------------------------------
1 | global_costmap:
2 | robot_radius: 0.20 # distance a circular robot should be clear of the obstacle (kobuki: 0.18)
3 | obstacle_layer:
4 | scan:
5 | data_type: LaserScan
6 | topic: scan
7 | marking: true
8 | clearing: true
9 | min_obstacle_height: 0.05 # previous: 0.25, too high for the R200 configuration!
10 | max_obstacle_height: 0.35
11 |
12 | local_costmap:
13 | robot_radius: 0.18 # distance a circular robot should be clear of the obstacle (kobuki: 0.18)
14 | obstacle_layer:
15 | scan:
16 | data_type: LaserScan
17 | topic: scan
18 | marking: true
19 | clearing: true
20 | min_obstacle_height: 0.05 # previous: 0.25, too high for the R200 configuration!
21 | max_obstacle_height: 0.35
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/roomba/capability_providers.yaml:
--------------------------------------------------------------------------------
1 | # default providers for the Roomba
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/roomba/diagnostics.yaml:
--------------------------------------------------------------------------------
1 | pub_rate: 1.0 # Optional
2 | base_path: '' # Optional, prepended to all diagnostic output
3 | analyzers:
4 | nodes:
5 | type: diagnostic_aggregator/GenericAnalyzer
6 | path: 'Nodes'
7 | timeout: 5.0
8 | contains: ['Node']
9 | mode:
10 | type: diagnostic_aggregator/GenericAnalyzer
11 | path: 'Mode'
12 | timeout: 5.0
13 | startswith: ['Operating Mode']
14 | sensors:
15 | type: GenericAnalyzer
16 | path: 'Sensors'
17 | timeout: 5.0
18 | startswith: ['Cliff Sensor', 'Wall Sensor', 'Gyro Sensor']
19 | power:
20 | type: diagnostic_aggregator/GenericAnalyzer
21 | path: 'Power System'
22 | timeout: 5.0
23 | startswith: ['Battery', 'Charging Sources', 'Laptop Battery']
24 | digital_io:
25 | type: diagnostic_aggregator/GenericAnalyzer
26 | path: 'Digital IO'
27 | timeout: 5.0
28 | startswith: ['Digital Outputs']
29 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/xtion/capability_providers.yaml:
--------------------------------------------------------------------------------
1 | # default capability providers for the ASUS Xtion Pro Live
2 | defaults:
3 | 'std_capabilities/RGBDSensor': 'turtlebot_capabilities/xtion_rgbd_sensor'
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/param/zeroconf.yaml:
--------------------------------------------------------------------------------
1 |
2 | # Publishes the ros master service on avahi.
3 |
4 | services:
5 | -
6 | name: "Turtlebot"
7 | type: _ros-master._tcp
8 | domain: local
9 | description: "ros master"
10 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/scripts/rospy_example_class:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python2.7
2 |
3 | # -*-
4 | # License/copyright here
5 | # -*-
6 |
7 | """
8 | Run the rospy_example_class node
9 | """
10 |
11 | from turtlebot_dabit.rospy_example_class import example_class
12 |
13 |
14 | def _main():
15 | node = example_class()
16 | try:
17 | node.run()
18 | except Exception, e:
19 | print "Exception excepted!\r\n{}".format(e)
20 |
21 | if __name__ == "__main__":
22 | _main()
23 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/scripts/rospy_hello_world.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python2.7
2 | # Import ROS libraries and messages
3 | import rospy
4 |
5 | # Print "Hello!" to terminal
6 | print "Hello!"
7 |
8 | # Initialize the ROS Node named 'opencv_example', allow multiple nodes to be run with this name
9 | rospy.init_node('opencv_example', anonymous=True)
10 |
11 | # Print "Hello ROS!" to the Terminal and ROSLOG
12 | rospy.loginfo("Hello ROS!")
13 |
14 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/scripts/rospy_opencv.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python2.7
2 | # Import ROS libraries and messages
3 | import rospy
4 | from sensor_msgs.msg import Image
5 |
6 | # Import OpenCV libraries and tools
7 | import cv2
8 | from cv_bridge import CvBridge, CvBridgeError
9 |
10 | # Print "Hello!" to terminal
11 | print "Hello!"
12 |
13 | # Initialize the ROS Node named 'opencv_example', allow multiple nodes to be run with this name
14 | rospy.init_node('opencv_example', anonymous=True)
15 |
16 | # Print "Hello ROS!" to the Terminal and to a ROS Log file located in ~/.ros/log/loghash/*.log
17 | rospy.loginfo("Hello ROS!")
18 |
19 | # Initialize the CvBridge class
20 | bridge = CvBridge()
21 |
22 | # Define a function to show the image in an OpenCV Window
23 | def show_image(img):
24 | cv2.imshow("Image Window", img)
25 | cv2.waitKey(3)
26 |
27 | # Define a callback for the Image message
28 | def image_callback(img_msg):
29 | # log some info about the image topic
30 | rospy.loginfo(img_msg.header)
31 |
32 | # Try to convert the ROS Image message to a CV2 Image
33 | try:
34 | cv_image = bridge.imgmsg_to_cv2(img_msg, "passthrough")
35 | except CvBridgeError, e:
36 | rospy.logerr("CvBridge Error: {0}".format(e))
37 |
38 | # Flip the image 90deg
39 | cv_image = cv2.transpose(cv_image)
40 | cv_image = cv2.flip(cv_image,1)
41 |
42 | # Show the converted image
43 | show_image(cv_image)
44 |
45 | # Initalize a subscriber to the "/camera/rgb/image_raw" topic with the function "image_callback" as a callback
46 | sub_image = rospy.Subscriber("/camera/rgb/image_raw", Image, image_callback)
47 |
48 | # Initialize an OpenCV Window named "Image Window"
49 | cv2.namedWindow("Image Window", 1)
50 |
51 | # Loop to keep the program from shutting down unless ROS is shut down, or CTRL+C is pressed
52 | while not rospy.is_shutdown():
53 | rospy.spin()
54 |
55 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/setup.py:
--------------------------------------------------------------------------------
1 | # ! DO NOT MANUALLY INVOKE THIS setup.py, USE CATKIN INSTEAD
2 |
3 | from distutils.core import setup
4 | from catkin_pkg.python_setup import generate_distutils_setup
5 |
6 | # fetch values from package.xml
7 | setup_args = generate_distutils_setup(
8 | packages=['turtlebot_dabit'],
9 | package_dir={'': 'src'},
10 | requires=['std_msgs', 'rospy']
11 | )
12 |
13 | setup(**setup_args)
14 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/src/roscpp_hello_world.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Hello World Example using ROS and CPP
3 | */
4 |
5 | // Include the ROS library
6 | #include
7 |
8 | // Main function
9 | int main(int argc, char** argv)
10 | {
11 | // Initialize the ROS Node "roscpp_example"
12 | ros::init(argc, argv, "roscpp_example");
13 |
14 | // Instantiate the ROS Node Handler as nh
15 | ros::NodeHandle nh;
16 |
17 | // Print "Hello ROS!" to the terminal and ROS log file
18 | ROS_INFO_STREAM("Hello from ROS node " << ros::this_node::getName());
19 |
20 | // Program succesful
21 | return 0;
22 | }
23 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/src/roscpp_pcl_example.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * PCL Example using ROS and CPP
3 | */
4 |
5 | // Include the ROS library
6 | #include
7 |
8 | // Include pcl
9 | #include
10 | #include
11 | #include
12 | #include
13 |
14 | // Include PointCloud2 message
15 | #include
16 |
17 | // Topics
18 | static const std::string IMAGE_TOPIC = "/camera/depth/points";
19 | static const std::string PUBLISH_TOPIC = "/pcl/points";
20 |
21 | // ROS Publisher
22 | ros::Publisher pub;
23 |
24 | void cloud_cb(const sensor_msgs::PointCloud2ConstPtr& cloud_msg)
25 | {
26 | // Container for original & filtered data
27 | pcl::PCLPointCloud2* cloud = new pcl::PCLPointCloud2;
28 | pcl::PCLPointCloud2ConstPtr cloudPtr(cloud);
29 | pcl::PCLPointCloud2 cloud_filtered;
30 |
31 | // Convert to PCL data type
32 | pcl_conversions::toPCL(*cloud_msg, *cloud);
33 |
34 | // Perform the actual filtering
35 | pcl::VoxelGrid sor;
36 | sor.setInputCloud (cloudPtr);
37 | sor.setLeafSize (0.1, 0.1, 0.1);
38 | sor.filter (cloud_filtered);
39 |
40 | // Convert to ROS data type
41 | sensor_msgs::PointCloud2 output;
42 | pcl_conversions::moveFromPCL(cloud_filtered, output);
43 |
44 | // Publish the data
45 | pub.publish (output);
46 | }
47 |
48 | int main (int argc, char** argv)
49 | {
50 | // Initialize the ROS Node "roscpp_pcl_example"
51 | ros::init (argc, argv, "roscpp_pcl_example");
52 | ros::NodeHandle nh;
53 |
54 | // Print "Hello" message with node name to the terminal and ROS log file
55 | ROS_INFO_STREAM("Hello from ROS Node: " << ros::this_node::getName());
56 |
57 | // Create a ROS Subscriber to IMAGE_TOPIC with a queue_size of 1 and a callback function to cloud_cb
58 | ros::Subscriber sub = nh.subscribe(IMAGE_TOPIC, 1, cloud_cb);
59 |
60 | // Create a ROS publisher to PUBLISH_TOPIC with a queue_size of 1
61 | pub = nh.advertise(PUBLISH_TOPIC, 1);
62 |
63 | // Spin
64 | ros::spin();
65 |
66 | // Success
67 | return 0;
68 | }
69 |
70 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/src/roscpp_publisher.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Hello World Example using ROS and CPP
3 | */
4 |
5 | // Include the ROS library
6 | #include
7 |
8 | // Main function
9 | int main(int argc, char** argv)
10 | {
11 | // Initialize the ROS Node "roscpp_example"
12 | ros::init(argc, argv, "roscpp_example");
13 |
14 | // Instantiate the ROS Node Handler as nh
15 | ros::NodeHandle nh;
16 |
17 | // Print "Hello ROS!" to the terminal and ROS log file
18 | ROS_INFO_STREAM("Hello ROS!");
19 |
20 | // Program succesful
21 | return 0;
22 | }
23 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/src/roscpp_subscriber.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Hello World Example using ROS and CPP
3 | */
4 |
5 | // Include the ROS library
6 | #include
7 |
8 | // Main function
9 | int main(int argc, char** argv)
10 | {
11 | // Initialize the ROS Node "roscpp_example"
12 | ros::init(argc, argv, "roscpp_example");
13 |
14 | // Instantiate the ROS Node Handler as nh
15 | ros::NodeHandle nh;
16 |
17 | // Print "Hello ROS!" to the terminal and ROS log file
18 | ROS_INFO_STREAM("Hello ROS!");
19 |
20 | // Program succesful
21 | return 0;
22 | }
23 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/src/turtlebot_dabit/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit/src/turtlebot_dabit/__init__.py
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/src/turtlebot_dabit/rospy_example_class.py:
--------------------------------------------------------------------------------
1 | # -*-
2 | # Copyright/license here
3 | # -*-
4 |
5 | """
6 | ROSPY Example Class
7 | """
8 |
9 | # Import ROS libraries and messages
10 | import rospy
11 |
12 | class example_class():
13 | """
14 | turtlebot_dabit.rospy_example_class
15 | This is an example Python class that initalizes a ROS Node and sets up a timer
16 | """
17 | def __init__(self):
18 | # Diagnostic Node name, ex. ...__module__ = 'turtlebot_dabit.rospy_example_class'
19 | self._node_name = self.__class__.__module__.split('.')[-1]
20 |
21 | # Handle ROS shutdown
22 | rospy.on_shutdown(self._rospy_on_shutdown)
23 |
24 | # Get ROS Parameters
25 | self.node_name = rospy.get_param('~node_name', self._node_name)
26 | self.anonymity = rospy.get_param('~anonymous', False)
27 |
28 | # Initialize ROS
29 | rospy.init_node(self.node_name, anonymous=self.anonymity)
30 |
31 | # Print init message
32 | rospy.loginfo("Hello from ROS Node {0}".format(rospy.get_name()))
33 |
34 | # Set a timer to call function _timer_callback every 2 seconds
35 | rospy.Timer(rospy.Duration(2), self._timer_callback)
36 |
37 | def _rospy_on_shutdown(self):
38 | try:
39 | rospy.logwarn("Shutting Down")
40 | except Exception, e:
41 | print e
42 |
43 | def _timer_callback(self, event):
44 | rospy.loginfo("Time Now: {0}".format(rospy.Time.now().secs))
45 |
46 | def run(self):
47 | while not rospy.is_shutdown():
48 | rospy.spin()
49 |
50 |
51 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/srv/Centroid.srv:
--------------------------------------------------------------------------------
1 | nav_msgs/OccupancyGrid map
2 | geometry_msgs/Point currentPos
3 | ---
4 | std_msgs/Bool foundCentroid
5 | geometry_msgs/Point centroid
6 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit/srv/Trajectory.srv:
--------------------------------------------------------------------------------
1 | geometry_msgs/Point initPos
2 | geometry_msgs/Point goalPos
3 | nav_msgs/OccupancyGrid map
4 | std_msgs/Bool processCostMap
5 | nav_msgs/OccupancyGrid costMap
6 | ---
7 | nav_msgs/Path path
8 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | turtlebot_dabit_description
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder
10 | clean,full,incremental,
11 |
12 |
13 | ?name?
14 |
15 |
16 |
17 | org.eclipse.cdt.make.core.append_environment
18 | true
19 |
20 |
21 | org.eclipse.cdt.make.core.autoBuildTarget
22 | all
23 |
24 |
25 | org.eclipse.cdt.make.core.buildArguments
26 |
27 |
28 |
29 | org.eclipse.cdt.make.core.buildCommand
30 | make
31 |
32 |
33 | org.eclipse.cdt.make.core.cleanBuildTarget
34 | clean
35 |
36 |
37 | org.eclipse.cdt.make.core.contents
38 | org.eclipse.cdt.make.core.activeConfigSettings
39 |
40 |
41 | org.eclipse.cdt.make.core.enableAutoBuild
42 | false
43 |
44 |
45 | org.eclipse.cdt.make.core.enableCleanBuild
46 | true
47 |
48 |
49 | org.eclipse.cdt.make.core.enableFullBuild
50 | true
51 |
52 |
53 | org.eclipse.cdt.make.core.fullBuildTarget
54 | all
55 |
56 |
57 | org.eclipse.cdt.make.core.stopOnError
58 | true
59 |
60 |
61 | org.eclipse.cdt.make.core.useDefaultBuildCmd
62 | true
63 |
64 |
65 |
66 |
67 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
68 | full,incremental,
69 |
70 |
71 |
72 |
73 |
74 | org.eclipse.cdt.core.cnature
75 | org.eclipse.cdt.core.ccnature
76 | org.eclipse.cdt.managedbuilder.core.managedBuildNature
77 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
78 |
79 |
80 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 2.8.3)
2 |
3 | project(turtlebot_dabit_description)
4 | find_package(catkin REQUIRED COMPONENTS urdf xacro)
5 |
6 | catkin_package(
7 | CATKIN_DEPENDS urdf xacro
8 | )
9 |
10 | install(DIRECTORY robots
11 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
12 | )
13 | install(DIRECTORY meshes
14 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
15 | )
16 | install(DIRECTORY test
17 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
18 | )
19 | install(DIRECTORY urdf
20 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
21 | )
22 |
23 | if(CATKIN_ENABLE_TESTING)
24 |
25 | catkin_add_gtest(${PROJECT_NAME}_test_urdf test/test_urdf.cpp)
26 |
27 | endif()
28 |
29 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/README.md:
--------------------------------------------------------------------------------
1 | # Testing Model Views
2 |
3 | Test the robot descriptions via the launcher in
4 | turtlebot_viz/turtlebot_rviz_launchers.
5 |
6 | roslaunch turtlebot_rviz_launchers view_model.launch
7 |
8 | It is a standalone launcher with minimal dependencies. Comments
9 | on how to reconfigure your environment to view the different
10 | robot models are in the launcher.
11 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/0_xtion_pro.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/0_xtion_pro.jpg
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/M8.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/M8.STL
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/M8_baseplate.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/M8_baseplate.STL
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/astra.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/astra.STL
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/astra.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/astra.jpg
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/astra_mount.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/astra_mount.STL
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/asus_xtion_pro_live.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/asus_xtion_pro_live.png
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/kinect.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/kinect.jpg
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/kinect.tga:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/kinect.tga
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/r200.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/r200.jpg
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/r200_bracket.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/r200_bracket.stl
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/r200_bracket_end.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/r200_bracket_end.stl
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/razor_9dof.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/razor_9dof.STL
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/xtion_pro.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/xtion_pro.jpg
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/xtion_pro_camera.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/sensors/xtion_pro_camera.jpg
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/circles/68-02421-8000-RA_Turtlebot_F-F_Standoff_color.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/circles/68-02421-8000-RA_Turtlebot_F-F_Standoff_color.png
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/circles/68-04552-1000-RA_Turtlebot_M-F_Standoff_color.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/circles/68-04552-1000-RA_Turtlebot_M-F_Standoff_color.png
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/circles/68-04552-2000-RA_Turtlebot_M-F_Standoff_color.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/circles/68-04552-2000-RA_Turtlebot_M-F_Standoff_color.png
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/circles/68-04556-RA_Kinect_Standoff_Assy.3ds:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/circles/68-04556-RA_Kinect_Standoff_Assy.3ds
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/circles/plate_0_logo.tga:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/circles/plate_0_logo.tga
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/circles/plate_1_logo.tga:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/circles/plate_1_logo.tga
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/circles/plate_2_logo.tga:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/circles/plate_2_logo.tga
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/hexagons/images/1f_pole.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/hexagons/images/1f_pole.jpg
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/hexagons/images/1f_stack.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/hexagons/images/1f_stack.jpg
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/hexagons/images/2f_pole.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/hexagons/images/2f_pole.jpg
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/hexagons/images/2f_stack.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/hexagons/images/2f_stack.jpg
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/hexagons/images/3f_pole.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/hexagons/images/3f_pole.jpg
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/hexagons/images/3f_stack.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/hexagons/images/3f_stack.jpg
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/hexagons/images/3f_stack1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/hexagons/images/3f_stack1.jpg
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/hexagons/images/kinect_pole.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/hexagons/images/kinect_pole.jpg
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/hexagons/images/kinect_pole_old.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/Setup/catkin_ws/src/turtlebot_dabit_description/meshes/stacks/hexagons/images/kinect_pole_old.jpg
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/package.xml:
--------------------------------------------------------------------------------
1 |
2 | turtlebot_dabit_description
3 | 2.4.2
4 |
5 | turtlebot_dabit_description provides a complete 3D model of the TurtleBot for simulation and visualization. The files in this package are parsed and used by a variety of other components. Most users will not interact directly with this package.
6 |
7 | Melonee Wise
8 | Daniel Stonier
9 | Daniel Stonier
10 | BSD
11 | http://ros.org/wiki/turtlebot_dabit_description
12 | https://github.com/turtlebot/turtlebot
13 | https://github.com/turtlebot/turtlebot/issues
14 |
15 | catkin
16 |
17 | urdf
18 | xacro
19 |
20 | urdf
21 | xacro
22 | kobuki_description
23 | create_description
24 |
25 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/robots/create_circles_asus_xtion_pro.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/robots/create_circles_kinect.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/robots/kobuki_hexagons_astra.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/robots/kobuki_hexagons_astra_m8.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/robots/kobuki_hexagons_asus_xtion_pro.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/robots/kobuki_hexagons_asus_xtion_pro_offset.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/robots/kobuki_hexagons_kinect.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/robots/kobuki_hexagons_r200.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/robots/roomba_circles_asus_xtion_pro.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/robots/roomba_circles_kinect.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/scripts/calc_inertia.m:
--------------------------------------------------------------------------------
1 | % Calculate moments of inertia for 3D sensors and TB2 poles and stacks.
2 | % Formulas extracted from: http://en.wikipedia.org/wiki/List_of_moments_of_inertia
3 | % TODO: do also for turtlebot 1 poles and stacks.
4 |
5 | % Poles are approximated as solid cylinder of radius r, height h and mass m
6 |
7 | % Base poles
8 | m = 0.008;
9 | r = 0.006;
10 | h = 0.0492;
11 |
12 | Ix = (m*(3*r^2 + h^2))/12
13 | Iy = Ix
14 | Iz = (m*r^2)/2
15 |
16 | fprintf('%.9f\n%.9f\n%.9f\n', Ix, Iy, Iz)
17 |
18 | % Middle poles
19 | m = 0.012;
20 | r = 0.006;
21 | h = 0.0608;
22 |
23 | Ix = (m*(3*r^2 + h^2))/12
24 | Iy = Ix
25 | Iz = (m*r^2)/2
26 |
27 | fprintf('%.9f\n%.9f\n%.9f\n', Ix, Iy, Iz)
28 |
29 | % Long poles
30 | m = 0.060;
31 | r = 0.006;
32 | h = 0.2032;
33 |
34 | Ix = (m*(3*r^2 + h^2))/12
35 | Iy = Ix
36 | Iz = (m*r^2)/2
37 |
38 | fprintf('%.9f\n%.9f\n%.9f\n', Ix, Iy, Iz)
39 |
40 | % Kinect poles
41 | m = 0.020;
42 | r = 0.006;
43 | h = 0.0936; % not really... are much shorter!
44 |
45 | Ix = (m*(3*r^2 + h^2))/12
46 | Iy = Ix
47 | Iz = (m*r^2)/2
48 |
49 | fprintf('%.9f\n%.9f\n%.9f\n', Ix, Iy, Iz)
50 |
51 |
52 | % Plates, approximated as a thin, solid disk of radius r and mass m:
53 | m = 0.520;
54 | r = 0.160;
55 |
56 | Ix = (m*r^2)/4
57 | Iy = Ix
58 | Iz = (m*r^2)/2
59 |
60 | fprintf('%.9f\n%.9f\n%.9f\n', Ix, Iy, Iz)
61 |
62 | % Cameras, approximated as a solid cuboid of height h, width w, and depth d, and mass m:
63 |
64 | % Kinect
65 | m = 0.564;
66 | h = 0.073;
67 | w = 0.27794;
68 | d = 0.07271;
69 |
70 | Ix = (m*(w^2 + h^2))/12
71 | Iy = (m*(h^2 + d^2))/12
72 | Iz = (m*(w^2 + d^2))/12
73 |
74 | fprintf('%.9f\n%.9f\n%.9f\n', Ix, Iy, Iz)
75 |
76 | % Asus
77 | m = 0.170;
78 | h = 0.072;
79 | w = 0.276;
80 | d = 0.073;
81 |
82 | Ix = (m*(w^2 + h^2))/12
83 | Iy = (m*(h^2 + d^2))/12
84 | Iz = (m*(w^2 + d^2))/12
85 |
86 | fprintf('%.9f\n%.9f\n%.9f\n', Ix, Iy, Iz)
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/test.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/urdf/common_properties.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/urdf/sensors/kinect.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
47 |
48 |
49 |
50 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/urdf/sensors/m8.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
74 |
75 |
76 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/urdf/turtlebot_common_library.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/urdf/turtlebot_gazebo.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | true
8 | 20.0
9 |
10 | ${60.0*M_PI/180.0}
11 |
12 | B8G8R8
13 | 640
14 | 480
15 |
16 |
17 | 0.05
18 | 8.0
19 |
20 |
21 |
22 | camera
23 | true
24 | 10
25 | rgb/image_raw
26 | depth/image_raw
27 | depth/points
28 | rgb/camera_info
29 | depth/camera_info
30 | camera_depth_optical_frame
31 | 0.1
32 | 0.0
33 | 0.0
34 | 0.0
35 | 0.0
36 | 0.0
37 | 0.4
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_dabit_description/urdf/turtlebot_properties.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
11 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_wanderer/launch/simple_wanderer.py:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Setup/catkin_ws/src/turtlebot_wanderer/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | turtlebot_wanderer
4 | 0.0.0
5 | The turtlebot_wanderer package
6 |
7 |
8 |
9 |
10 | user
11 |
12 |
13 |
14 |
15 |
16 | TODO
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 | catkin
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/docs/00-Notes.md:
--------------------------------------------------------------------------------
1 | ## NOTES
2 | For very precise SLAM and CV algorithms, calibration is needed for the color and depth cameras.
3 |
4 |
5 | [Return to the main README page](/README.md)
6 |
--------------------------------------------------------------------------------
/docs/01-Turtlebot_Setup.md:
--------------------------------------------------------------------------------
1 | # Turtlebot Setup
2 |
3 | ## Overview
4 | TurtleBot 2 is an open robotics platform designed for education and research on state of art robotics. It is also a powerful tool to teach and learn ROS (Robot Operating System) and make the most of this cutting edge techonology. Equipped with a 3D sensor, it can map and navigate indoor enviroments. Due to the Turtlebot's modularity, you can attach your own sensors, electronics, and mechanics easily.
5 |
6 | ## Physical Assembly:
7 |
8 | 
9 |
10 |
11 | [Return to the main README page](/README.md)
12 |
--------------------------------------------------------------------------------
/docs/01b-Turtlebot_Ubuntu_Setup.md:
--------------------------------------------------------------------------------
1 | ## Turtlebot Ubuntu Setup
2 |
3 | Stop Ubuntu from sleeping on lid close:
4 | 
5 | 
6 |
7 | Stop Ubuntu from locking the screen:
8 | 
9 | 
10 |
11 |
12 |
13 |
14 | [Return to the main README page](/README.md)
15 |
--------------------------------------------------------------------------------
/docs/02c-Tips_and_Tricks.md:
--------------------------------------------------------------------------------
1 | ## Tips and Tricks
2 | The following is a collection of useful tips and tricks that would help speed up aspects of connecting to and setting up the Turtlebot.
3 |
4 | ## Connecting to the Turtlebot remotely from the Master Computer
5 |
6 | 1. Open a new terminal on the Master Computer
7 | 1. `ssh turtlebot@IP_OF_TURTLEBOT`
8 |
9 |
10 | ## Using a shell window manager
11 | Byobu, Tmux, Screen
12 |
13 |
14 | ## Using Bash Aliases
15 | [~/.bash_aliases](/Setup/.bash_aliases)
16 | [~/.rosrc](/Setup/.rosrc)
17 |
18 | at bottom of .bashrc:
19 | ```bash
20 | if [ -f ~/.rosrc ]; then
21 | . ~/.rosrc
22 | fi
23 | ```
24 |
25 |
26 | [Return to the main README page](/README.md)
27 |
--------------------------------------------------------------------------------
/docs/03-Turtlebot_Bringup.md:
--------------------------------------------------------------------------------
1 | ## Turtlebot Bringup
2 | The Turtlebot Bringup package contains all the neccesary configuration and launch files for loading the Turtlebot drivers.
3 |
4 | The minimal.launch file starts up the Kobuki base drivers and the basic Turtlebot configuration settings for ROS.
5 | 1. Load the minimal.launch file
6 | 1. On the Turtlebot computer, open a new terminal and type:
7 | ```bash
8 | roslaunch turtlebot_bringup minimal.launch
9 | ```
10 | You should hear a chime from the Kobuki once ROS has connected to it.
11 |
12 | ## Orbbec Astra Bringup
13 | You can bring up the Orbbec Astra drivers by using the 3d_sensor launch file located in the turtlebot_bringup package
14 | 1. Load the 3dsensor.launch file
15 | 1. On the Turtlebot computer, open a new terminal and type:
16 | ```bash
17 | roslaunch turtlebot_bringup 3dsensor.launch
18 | ```
19 |
20 | ## Seeing Orbbec Astra data
21 | You can view data from the Orbbec Astra using the rqt_image_view program.
22 | 1. On the master computer, open a new terminal and type:
23 | ```bash
24 | rosrun rqt_image_view rqt_image_view image:=/camera/rgb/image_raw
25 | ```
26 | Astra Topics:
27 |
28 | | Topic | Description |
29 | | ------------------- | ----------- |
30 | | /camera/depth/* | Depth Image |
31 | | /camera/ir/* | 2D infrared image |
32 | | /camera/image_raw/* | raw RGB image |
33 |
34 | ## Testing Kobuki
35 | 1. Launch the GUI to check out the Kobuki status
36 | 1. From the master computer, open a new terminal and type:
37 | ```bash
38 | roslaunch turtlebot_dashboard turtlebot_dashboard.launch
39 | ```
40 | If everything is OK, it should look like this:
41 | 
42 |
43 | You may need to press the button that looks like a speedometer to show the Robot Monitor output.
44 | 
45 |
46 |
47 | [Return to the main README page](/README.md)
48 |
--------------------------------------------------------------------------------
/docs/04-Turtlebot_Teleop.md:
--------------------------------------------------------------------------------
1 |
2 | ## Turtlebot Teleop
3 | Now that you have configured the network connections and are able to ping between machines, you can control the turtlebot from the master using the Keyboard Teleop launch file.
4 |
5 | Open a new terminal on the master laptop:
6 | ```bash
7 | roslaunch turtlebot_teleop keyboard_teleop.launch
8 | ```
9 |
10 | You should see the IP_OF_TURTLEBOT near the top of the terminal window.
11 | 
12 |
13 | ### Turtlebot computer
14 | You can test drive the Kobuki base by using the Keyboard teleop launch file located in the turtlebot_teleop package
15 | ```bash
16 | roslaunch turtlebot_teleop keyboard_teleop.launch
17 | ```
18 | 
19 |
20 |
21 | ## Turtlebot Follower
22 | The Turtlebot has an additional program that can follow an entity in a designated window.
23 |
24 | - Open a new terminal on the master laptop: `roslaunch turtlebot_follower follower.launch`
25 |
26 |
27 | Using the configuration GUI for ROS you can modify the parameters of the follower.
28 | 1. In a new terminal: `rosrun rqt_reconfigure rqt_reconfigure`
29 |
30 | 2. Select camera/follower on the reconfigure gui.
31 |
32 | 3. Play with the sliders and see how the parameters effect the Turtlebot's behavior.
33 |
34 | 
35 |
36 |
37 | [Return to the main README page](/README.md)
38 |
--------------------------------------------------------------------------------
/docs/05-Turtlebot_Visualization.md:
--------------------------------------------------------------------------------
1 | ## Turtlebot Visualization
2 | Visualizing the 3D Turtlebot model and the data streaming from the Turtlebot can be done through the ROS Visualization (RVIZ) packages.
3 |
4 | RVIZ can be run standalone: `rosrun rviz rviz`
5 |
6 | ## Viewing the Turtlebot Model
7 | You can preview the Turtlebot Model to verify that the RVIZ and Turtlebot packages are installed.
8 | - In a new terminal: `roslaunch turtlebot_rviz_launchers view_model.launch`
9 |
10 | 
11 |
12 | ## Viewing the Live Turtlebot Data
13 | You can view live sensor data streamed from the Turtlebot by using RVIZ.
14 | - In a new terminal: `roslaunch turtlebot_rviz_launchers view_robot.launch`
15 |
16 | 
17 |
18 |
19 | You can view the output of a topic by click on the checkbox to the right of the topic name in the Displays section
20 |
21 | 
22 |
23 | You may need to rotate the view in RVIZ around the robot in order to properly view the data output.
24 |
25 |
26 | [Return to the main README page](/README.md)
27 |
--------------------------------------------------------------------------------
/docs/07-RGB-D_SLAM.md:
--------------------------------------------------------------------------------
1 | ## 3D SLAM with RGB-D Sensors
2 | An RGB-D sensor, like the Orbbec Astra or Microsoft Kinect, houses a color camera (RGB) along with a depth camera (D).
3 | Using the depth sensor, we can map the color image on top of the depth image to get a 3D color image.
4 |
5 | ## RTABMAP
6 | RTABMAP (Real-Time Appearance-Based Mapping) is a RGB-D Graph-Based SLAM approach based on an incremental appearance-based global Bayesian loop closure detector.
7 |
8 | [Using RTABMAP](07b-RTABMAP.md)
9 |
10 | ## RGBDSLAM
11 | RGBDSLAM is a RGB-D loop-closure graph-based SLAM approach using visual odometry and custom implementations of opencv methods
12 |
13 | [Using RGBDSLAM](07c-RGBDSLAM.md)
14 |
15 | ## ORB_SLAM
16 | ORB_SLAM is a
17 |
18 | [Using ORB_SLAM](07d-ORB_SLAM.md)
19 |
20 |
21 | [Return to the main README page](/README.md)
22 |
--------------------------------------------------------------------------------
/docs/07c-RGBDSLAM.md:
--------------------------------------------------------------------------------
1 | ## RGBDSLAM
2 | RGBDSLAM is a RGB-D loop-closure graph-based SLAM approach using visual odometry and custom implementations of opencv methods
3 |
4 | ## Prequisites
5 | This section **requires** the *catkin_ws* to be initialized and the *turtlebot_dabit* package created.
6 | [Please click here to learn how to initialize the catkin workspace](08-Catkin_Workspace.md)
7 |
8 | ## Installation
9 | This process has to be done on __both__ _master_ and _turtlebot_ computers.
10 |
11 | Download rgbdslam_v2 and configure dependencies
12 | 1. CD to catkin_ws, source the environment setup, and download rgbdslam_v2
13 | * `cd ~/catkin_ws/src`
14 | * `git clone -b kinetic https://github.com/felixendres/rgbdslam_v2 rgbdslam`
15 | 2. Remove any conflicting libraries
16 | * `sudo apt remove ros-kinetic-libg2o libqglviewer-dev`
17 | 3. Install build dependencies
18 | * `sudo apt install cmake libeigen3-dev libsuitesparse-dev`
19 | 3. Build and install a custom verison of g2o
20 | * `cd ~/catkin_ws/src`
21 | * `git clone -b c++03 https://github.com/felixendres/g2o.git`
22 | * `mkdir g2o/build`
23 | * `cd g2o/build`
24 | * `cmake .. -DCMAKE_INSTALL_PREFIX=../install -DG2O_BUILD_EXAMPLES=OFF`
25 | * `nice make -j4 install`
26 | * If your build fails, try the `nice make -j4 install` command again
27 | 4. Install the library dependencies of rgbdslam_v2 using rosdep
28 | * `source ~/catkin_ws/devel/setup.sh`
29 | * `rosdep update`
30 | * `rosdep install rgbdslam`
31 | 5. Build rgbdslam
32 | * `export G2O_DIR=~/catkin_ws/src/g2o/install`
33 | * `cd ~/catkin_ws`
34 | * `catkin_make`
35 |
36 | ## Starting RGBDSLAM on the Turtlebot
37 | On the _Turtlebot_ laptop:
38 | 1. Open a new terminal
39 | 1. `source ~/catkin_ws/devel/setup.sh`
40 | 2. `export G2O_DIR=~/catkin_ws/src/g2o`
41 | 3. `roslaunch rgbdslam headless.launch`
42 |
43 | ## Visualizing RGBDSLAM data
44 | On the _master_ laptop, start the rgbdslam interface:
45 | 1. Open a new terminal
46 | 1. `source ~/catkin_ws/devel/setup.sh`
47 | 2. `rosrun rgbdslam rgbdslam`
48 | 2. Use the GUI to view the data from the rgbdslam node
49 |
50 | ## Tuning RGBDSLAM Parameters
51 | Coming soon, we are working out the best parameters to use with this Turtlebot setup
52 |
53 |
54 | ## Troubleshooting
55 | -
56 |
57 |
58 |
59 | [Return to the main README page](/README.md)
60 |
--------------------------------------------------------------------------------
/docs/07d-ORB_SLAM2.md:
--------------------------------------------------------------------------------
1 | ## ORB SLAM 2
2 |
3 |
4 | ## Installation
5 | Download orb_slam2 and configure dependencies
6 | 1. CD to workspace and download orb_slam2
7 | * `cd ~/workspace``
8 | * `git clone https://github.com/raulmur/ORB_SLAM2``
9 | 2. Make a temporary directory in the workspace
10 | * `mkdir ~/workspace/tmp`
11 | 3. Build and Install Intel LibRealSense
12 | * `cd ~/workspace/tmp`
13 | * `git clone https://github.com/IntelRealSense/librealsense`
14 | * `cd librealsense`
15 | * `mkdir build`
16 | * `cd build`
17 | * `cmake ..`
18 | * `make`
19 | * `sudo make install`
20 | 4. Build and Install Pangolin
21 | * `cd ~/workspace/tmp`
22 | * `git clone https://github.com/stevenlovegrove/Pangolin.git`
23 | * `git checkout v0.5`
24 | * `sudo apt install libglew-dev`
25 | * `cd Pangolin`
26 | * `mkdir build`
27 | * `cd build`
28 | * `cmake ..`
29 | * `make`
30 | * `sudo make install`
31 | 5. Build ORB_SLAM2 base libraries
32 | * `cd ~/workspace/ORB_SLAM2`
33 | * `chmod +x build.sh`
34 | * `./build.sh`
35 | 6. Build ORB_SLAM2 for ROS
36 | * `export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/workspace/ORB_SLAM2/Examples/ROS`
37 | * `chmod +x build_ros.sh`
38 | * `./build_ros.sh`
39 | 7. Run ORB_SLAM2 RGBD Example
40 | * `rosrun ORB_SLAM2 RGBD ~/workspace/ORB_SLAM2/Vocabulary/ORBvoc.txt ~/workspace/ORB_SLAM2/Examples/RGB-D/TUM1.yaml`
41 |
42 | ## Starting ORB_SLAM2 on the Turtlebot
43 | ORB_SLAM2 ROS support is lacking (a lot)
44 |
45 | ## Visualizing ORB_SLAM data
46 | No support yet
47 |
48 | ## Viewing ORB_SLAM data
49 | No support yet
50 |
51 | ## Tuning ORB_SLAM parameters
52 | No support yet
53 |
54 | ## Troubleshooting
55 |
56 |
57 |
58 |
59 | [Return to the main README page](/README.md)
60 |
--------------------------------------------------------------------------------
/docs/08-Catkin_Workspace.md:
--------------------------------------------------------------------------------
1 | ## Catkin Workspace
2 | [Catkin](http://wiki.ros.org/catkin) is a CMAKE-based build system used to build ROS packages.
3 |
4 | ## Catkin Setup
5 | We will be setting up a Catkin Workspace on **BOTH** the *Turtlebot* and *Master* computers using the following steps.
6 |
7 | 1. Open a new terminal and create your catkin workspace
8 | 1. Create a new directory in your home folder:
9 | * `mkdir -p ~/catkin_ws/src`
10 | 2. CD to that directory:
11 | * `cd ~/catkin_ws/src`
12 | 3. Initialize the workspace:
13 | * `catkin_init_workspace`
14 | 4. Build the empty catkin workspace
15 | * `cd ~/catkin_ws`
16 | * `catkin_make`
17 | 5. Source the setup.sh file to load the environment setup
18 | * `source ~/catkin_ws/devel/setup.sh`
19 | 2. Create a new catkin package called *turtlebot_dabit*
20 | 1. CD to your catkin_ws src directory:
21 | * `cd ~/catkin_ws/src`
22 | 2. Create a new catkin package:
23 | * `catkin_create_pkg turtlebot_dabit`
24 | 3. CD into the new package:
25 | * `cd turtlebot_dabit`
26 | 4. Make some directories for future use
27 | * `mkdir launch`
28 | * `mkdir scripts`
29 | * `mkdir src`
30 |
31 | ## What's Next?
32 | [Building ROSPY with your Catkin Package](08b-ROSPY_Building.md)
33 | [Building ROSCPP with your Catkin Package](08c-ROSCPP_Building.md)
34 |
35 | ## Catkin Tips
36 | * You can create a new package and declare its dependencies at the same time:
37 | * `catkin_create_pkg turtlebot_dabit roscpp`
38 | * You can build outside of the working directly by specifying `--directory /path/to/catkin/ws`:
39 | * `catkin_make --directory ~/catkin_ws`
40 | * You can specify which packages to build using the `--pkg` argument:
41 | * `catkin_make --pkg turtlebot_dabit`
42 |
43 |
44 |
45 | [Return to the main README page](/README.md)
46 |
--------------------------------------------------------------------------------
/docs/09-Turtlebot_Movement.md:
--------------------------------------------------------------------------------
1 | ## Turtlebot Movement
2 |
3 |
4 | ## Prequisites
5 |
6 |
7 | ## Movement Using rostopic
8 |
9 |
10 | ### Movement using mobile_base commands
11 |
12 |
13 | ### Movement using move_base
14 |
15 |
16 | ## Movement using Python
17 |
18 |
19 | ## Movement using C++
20 |
21 |
22 | ## Troubleshooting
23 |
--------------------------------------------------------------------------------
/docs/10-Turtlebot_Navigation.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/10-Turtlebot_Navigation.md
--------------------------------------------------------------------------------
/docs/11b-Arduino_Subscriber.md:
--------------------------------------------------------------------------------
1 | ## ROS Arduino
2 |
3 | ## Prequisites
4 | This section **requires** the *catkin_ws* to be initialized and the *turtlebot_dabit* package created.
5 | [Please click here to learn how to initialize the catkin workspace](08-Catkin_Workspace.md)
6 |
7 |
8 | This section **requires** the *rosserial_arduino* package to be setup.
9 | [Please click here to learn how to set up rosserial_arduino](11-ROS_Arduino.md)
10 |
11 | ## Sending data to the Arduino
12 | As an example to send data to the Arduino, we will use the blink `example.o` tutorial. More informatino [can be pulled up, here](http://wiki.ros.org/rosserial_arduino/Tutorials/)
13 |
14 | 1. Upload the following code to your Arduino:
15 |
16 | ```c
17 | /* rosserial Subscriber Example */
18 |
19 | #include
20 | #include
21 |
22 | ros::NodeHandle nh;
23 |
24 | void messageCb( const std_msgs::Bool& msg){
25 | digitalWrite(13, msg.data); // set the pin state to the message data
26 | }
27 |
28 | ros::Subscriber sub("/arduino/led", &messageCb );
29 |
30 | void setup()
31 | {
32 | pinMode(13, OUTPUT);
33 | nh.initNode();
34 | nh.subscribe(sub);
35 | }
36 |
37 | void loop()
38 | {
39 | nh.spinOnce();
40 | delay(1);
41 | }
42 | ```
43 |
44 | ## Connecting to the Arduino
45 |
46 | 1. Launch the arduino.launch
47 | * `source ~/catkin_ws/devel/setup.sh`
48 | * `roslaunch turtlebot_dabit arduino.launch`
49 |
50 | ## Communicating with the Arduino
51 | 1. Type
52 | * `rostopic list`
53 | 2. With the above example,and ROSSERIAL running, we can see in rostopic our Arduino topic:
54 | * __/arduino/led__
55 | 3. You can send data to this topic by using rostopic pub:
56 | * `rostopic pub /arduino/led std_msgs/Bool True`
57 | * `rostopic pub /arduino/led std_msgs/Bool False`
58 |
59 | ## Additional Tutorials
60 | ROSSERIAL has recently improved their tutorials, and have a very wide selection of examples.
61 | [Check out the ROSSerial_Arduino Tutorials](http://wiki.ros.org/rosserial_arduino/Tutorials)
62 |
63 | ## Troubleshooting
64 |
65 |
66 | [Return to the main README page](/README.md)
67 |
--------------------------------------------------------------------------------
/docs/11c-Arduino_Publisher.md:
--------------------------------------------------------------------------------
1 | ## ROS Arduino
2 |
3 | ## Prequisites
4 | This section **requires** the *catkin_ws* to be initialized and the *turtlebot_dabit* package created.
5 | [Please click here to learn how to initialize the catkin workspace](08-Catkin_Workspace.md)
6 |
7 | This section **requires** the *rosserial_arduino* package to be setup.
8 | [Please click here to learn how to set up rosserial_arduino](11-ROS_Arduino.md)
9 |
10 | ## Receiving data from the Arduino
11 | As an example to receive data from the Arduino, we will have the Arduino print the milliseconds since it has started.
12 | More information [can be pulled up, here](http://wiki.ros.org/rosserial_arduino/Tutorials/)
13 |
14 | 1. Upload the following code to your Arduino:
15 |
16 | ```c
17 | /*
18 | * rosserial Publisher Example
19 | * Publishes the Arduino millis to the topic /arduino/millis
20 | */
21 |
22 | /* Include the ROS library */
23 | #include
24 |
25 | /* Include the ROS message for an unsigned 32-bit integer
26 | Arduino's millis() command returns a `long`,
27 | which is an unsigned 32-bit integer */
28 | #include
29 |
30 | ros::NodeHandle nh;
31 |
32 | std_msgs::UInt32 millis_msg;
33 | ros::Publisher pub_millis("/arduino/millis", &millis_msg);
34 |
35 |
36 | void setup()
37 | {
38 | // Initialize ROS Node
39 | nh.initNode();
40 | // Advertise the publisher topic
41 | nh.advertise(pub_millis);
42 | }
43 |
44 | void loop()
45 | {
46 | // Set the millis_msg data to the millis() output
47 | millis_msg.data = millis();
48 | // Tell ROS to publish the data
49 | pub_millis.publish( &millis_msg );
50 | // Send the ROS message to the ROS Master
51 | nh.spinOnce();
52 |
53 | delay(5);
54 | }
55 | ```
56 |
57 | ## Connecting to the Arduino
58 |
59 | 1. Launch the arduino.launch
60 | * `source ~/catkin_ws/devel/setup.sh`
61 | * `roslaunch turtlebot_dabit arduino.launch`
62 |
63 | ## Communicating with the Arduino
64 | 1. Type
65 | * `rostopic list`
66 | 2. With the above example,and ROSSERIAL running, we can see in rostopic our Arduino topic:
67 | * __/arduino/millis__
68 | 3. You can see the topic information using the rostopic command:
69 | * `rostopic info /arduino/millis`
70 | 3. You can see the data from the topic using the following command:
71 | * `rostopic echo /arduino/millis`
72 |
73 | ## Additional Tutorials
74 | ROSSERIAL has recently improved their tutorials, and have a very wide selection of examples.
75 | [Check out the ROSSerial_Arduino Tutorials](http://wiki.ros.org/rosserial_arduino/Tutorials)
76 |
77 | ## Troubleshooting
78 |
79 |
80 | [Return to the main README page](/README.md)
81 |
--------------------------------------------------------------------------------
/docs/12-RQT_GUI.md:
--------------------------------------------------------------------------------
1 | ## RQT_GUI
2 |
3 | 1. Create Catkin (Build) Workspace
4 | ```bash
5 | mkdir -p ~/catkin_ws/src
6 | cd ~/catkin_ws/src
7 | catkin_init_workspace
8 | ```
9 | 2. Clone tutorial repo into workspace
10 | ```bash
11 | git clone https://github.com/dabit-industries/turtlebot2-tutorials
12 | ```
13 | 3. Go to directory containing GUI code:
14 | ```bash
15 | cd ~/catkin_ws/src/rqt_turtlebot_dabit
16 | ```
17 |
18 | 4. Install dependencies
19 | ```bash
20 | sudo apt install python-qt-binding python3-pyqt5 -y
21 | ```
22 | 5. Build the Workspace
23 | ```bash
24 | cd ~/catkin_ws/src/turtlebot2-tutorials/catkin_ws
25 | catkin_make
26 | ```
27 | Clean rqt cache
28 | ```
29 | rm ~/.config/ros.org/rqt_gui.ini
30 | ```
31 | 6. Source the bash files
32 | ```bash
33 | source ~/.bashrc
34 | source ~/catkin_ws/devel/setup.bash
35 | ```
36 | 7. Run the interface
37 | ```bash
38 | rosrun rqt_turtlebot_dabit rqt_turtlebot_dabit
39 | ```
40 |
41 | 
42 |
43 |
44 | [Return to the main README page](/README.md)
45 |
--------------------------------------------------------------------------------
/docs/14-OpenCV2.md:
--------------------------------------------------------------------------------
1 | ## OpenCV with ROS
2 | OpenCV can be used with ROS using the CvBridge tools
3 | The CvBridge tools come installed by default with the ROS Desktop setup.
4 |
5 | ## Using OpenCV in Python with ROS Images
6 | [OpenCV in Python using ROS Image topics](14b-OpenCV2_Python.md)
7 |
8 | [OpenCV in C++ using ROS Image topics](14c-OpenCV2_CPP.md)
9 |
10 |
11 | [Return to the main README page](/README.md)
12 |
--------------------------------------------------------------------------------
/docs/15-Skeleton_Recognition.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/15-Skeleton_Recognition.md
--------------------------------------------------------------------------------
/docs/16-Facial_Recognition.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/16-Facial_Recognition.md
--------------------------------------------------------------------------------
/docs/18-Razor_IMU.md:
--------------------------------------------------------------------------------
1 | ## Razor 9DOF IMU
2 |
3 |
4 | ## Prequisites
5 |
6 |
7 | ## Installation
8 | 1. dependencies
9 | 2. git clone
10 | 3. arduino ide
11 | 1. boards manager - arm M0
12 | 2. install boardsmanager link
13 | 3. install sparkfun boards
14 | 4. install flashstorage library
15 | 5. install sparkfun mpu-9250 dmp library
16 |
17 | ## Launch
18 |
19 |
20 | ## Visualization
21 |
22 |
23 | ## Calibration
24 |
25 |
26 | ## Mounting on Turtlebot
27 |
28 |
29 | ## Troubleshooting
30 |
31 |
32 |
33 | [Return to the main README page](/README.md)
34 |
--------------------------------------------------------------------------------
/docs/20-Camera_Calibration.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/20-Camera_Calibration.md
--------------------------------------------------------------------------------
/docs/22-rosbag.md:
--------------------------------------------------------------------------------
1 | ## ROSBAG
2 | ROS data can be logged and stored in a format known as a BAG file.
3 | BAG files contain information regarind the topic structure, messages posted on that topic, and the ability to play the data directly in a ROS instance.
4 |
5 | ## Usage
6 | Check out the following tutorials:
7 | - [How to export image and video data from a bag file](http://wiki.ros.org/rosbag/Tutorials/Exporting%20image%20and%20video%20data)
8 | - [Producing filtered bag files](http://wiki.ros.org/rosbag/Tutorials/Producing%20filtered%20bag%20files)
9 | - [Recording and playing back data](http://wiki.ros.org/rosbag/Tutorials/Recording%20and%20playing%20back%20data)
10 |
11 |
12 | [Return to the main README page](/README.md)
13 |
14 |
--------------------------------------------------------------------------------
/docs/22a-rqt_bag.md:
--------------------------------------------------------------------------------
1 | ## RQT_BAG
2 | RQT_BAG is a GUI Tool used to manipulate ROSBAG files.
3 |
4 | ## Usage
5 | More information can be found at the following link:
6 | - [rqt_bag](http://wiki.ros.org/rqt_bag)
7 |
8 | [Return to the main README page](/README.md)
9 |
--------------------------------------------------------------------------------
/docs/22b-rqt_turtlebot_houston_bag.md:
--------------------------------------------------------------------------------
1 | ## RQT_TURTLEBOT_DABIT_BAG
2 | RQT_TURTLEBOT_DABIT_BAG is a configuration of our software to load, play, and visualize ROSBAG data.
3 |
4 | ## Prequisites
5 | 1. [Automated Setup](00b-Automated_Setup.md)
6 | 2. [rosbag](22-rosbag.md)
7 | 3. [rqt_bag](22a-rqt_bag.md)
8 |
9 | ## Operation
10 | 1. Collect your bag data using the GUI tool
11 | 1. 
12 | 2. 
13 | - When you hit the record button again it will stop recording
14 | - Your bag is saved
15 | 2. Close the rqt_bag gui AND rqt_turtlebot_dabit gui
16 | 3. Launch *master_bag* on the desktop
17 | 4. In the rqt bag gui, load the bag file:
18 | 1. 
19 | 5. Enable image previews in rqt_bag:
20 | 1. 
21 | 6. Enable topic publishing in rqt_bag:
22 | 1. 
23 | 7. Play the bag and visualize the data!
24 | 1. 
25 |
26 | [Return to the main README page](/README.md)
27 |
--------------------------------------------------------------------------------
/docs/Resources/00-turtlebot_houston_gui.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/00-turtlebot_houston_gui.gif
--------------------------------------------------------------------------------
/docs/Resources/01-explode_view_01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/01-explode_view_01.jpg
--------------------------------------------------------------------------------
/docs/Resources/01b-lock_prompt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/01b-lock_prompt.png
--------------------------------------------------------------------------------
/docs/Resources/01b-power_prompt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/01b-power_prompt.png
--------------------------------------------------------------------------------
/docs/Resources/01b-search_lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/01b-search_lock.png
--------------------------------------------------------------------------------
/docs/Resources/01b-search_power.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/01b-search_power.png
--------------------------------------------------------------------------------
/docs/Resources/02-wificonf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/02-wificonf.png
--------------------------------------------------------------------------------
/docs/Resources/02b-gedit_bashrc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/02b-gedit_bashrc.png
--------------------------------------------------------------------------------
/docs/Resources/03-turtlebot_dashboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/03-turtlebot_dashboard.png
--------------------------------------------------------------------------------
/docs/Resources/03-turtlebot_spedometer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/03-turtlebot_spedometer.png
--------------------------------------------------------------------------------
/docs/Resources/04-turtlebot_keyboard_teleop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/04-turtlebot_keyboard_teleop.png
--------------------------------------------------------------------------------
/docs/Resources/04-turtlebot_keyboard_teleop_master.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/04-turtlebot_keyboard_teleop_master.png
--------------------------------------------------------------------------------
/docs/Resources/05-rviz_turtlebot_add_type.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/05-rviz_turtlebot_add_type.png
--------------------------------------------------------------------------------
/docs/Resources/05-rviz_turtlebot_view_model.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/05-rviz_turtlebot_view_model.png
--------------------------------------------------------------------------------
/docs/Resources/05-rviz_turtlebot_view_robot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/05-rviz_turtlebot_view_robot.png
--------------------------------------------------------------------------------
/docs/Resources/05-rviz_turtlebot_view_robot_displays.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/05-rviz_turtlebot_view_robot_displays.png
--------------------------------------------------------------------------------
/docs/Resources/06-2d_nav_goal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/06-2d_nav_goal.png
--------------------------------------------------------------------------------
/docs/Resources/06-2d_nav_pose_estimate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/06-2d_nav_pose_estimate.png
--------------------------------------------------------------------------------
/docs/Resources/06-global_local_map_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/06-global_local_map_disable.png
--------------------------------------------------------------------------------
/docs/Resources/06-gmapping.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/06-gmapping.gif
--------------------------------------------------------------------------------
/docs/Resources/06-gmapping_goal.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/06-gmapping_goal.gif
--------------------------------------------------------------------------------
/docs/Resources/06-gmapping_laserscan.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/06-gmapping_laserscan.gif
--------------------------------------------------------------------------------
/docs/Resources/06-gmapping_localization.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/06-gmapping_localization.gif
--------------------------------------------------------------------------------
/docs/Resources/06-gmapping_map.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/06-gmapping_map.png
--------------------------------------------------------------------------------
/docs/Resources/06-gmapping_room.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/06-gmapping_room.png
--------------------------------------------------------------------------------
/docs/Resources/07-rtabmap_3d_view.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/07-rtabmap_3d_view.gif
--------------------------------------------------------------------------------
/docs/Resources/07-rtabmap_circle.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/07-rtabmap_circle.gif
--------------------------------------------------------------------------------
/docs/Resources/07-rtabmap_collected.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/07-rtabmap_collected.gif
--------------------------------------------------------------------------------
/docs/Resources/07-rtabmap_database_update_parameters.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/07-rtabmap_database_update_parameters.png
--------------------------------------------------------------------------------
/docs/Resources/07-rtabmap_driving.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/07-rtabmap_driving.gif
--------------------------------------------------------------------------------
/docs/Resources/07-rtabmap_image_view.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/07-rtabmap_image_view.gif
--------------------------------------------------------------------------------
/docs/Resources/07-rtabmap_loop_closure_display.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/07-rtabmap_loop_closure_display.png
--------------------------------------------------------------------------------
/docs/Resources/17-evince_5pg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/17-evince_5pg.png
--------------------------------------------------------------------------------
/docs/Resources/17-measure_tag.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/17-measure_tag.jpg
--------------------------------------------------------------------------------
/docs/Resources/19-assembled.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-assembled.jpg
--------------------------------------------------------------------------------
/docs/Resources/19-ethernet_network.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-ethernet_network.png
--------------------------------------------------------------------------------
/docs/Resources/19-in-kit.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-in-kit.jpg
--------------------------------------------------------------------------------
/docs/Resources/19-included_in_box.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-included_in_box.jpg
--------------------------------------------------------------------------------
/docs/Resources/19-kobuki_connectors.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-kobuki_connectors.jpg
--------------------------------------------------------------------------------
/docs/Resources/19-lidar_on.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-lidar_on.jpg
--------------------------------------------------------------------------------
/docs/Resources/19-m8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-m8.png
--------------------------------------------------------------------------------
/docs/Resources/19-network.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-network.png
--------------------------------------------------------------------------------
/docs/Resources/19-network_edit_connection_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-network_edit_connection_1.png
--------------------------------------------------------------------------------
/docs/Resources/19-network_edit_connection_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-network_edit_connection_2.png
--------------------------------------------------------------------------------
/docs/Resources/19-network_edit_connection_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-network_edit_connection_3.png
--------------------------------------------------------------------------------
/docs/Resources/19-network_edit_connection_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-network_edit_connection_4.png
--------------------------------------------------------------------------------
/docs/Resources/19-network_edit_connection_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-network_edit_connection_5.png
--------------------------------------------------------------------------------
/docs/Resources/19-power_adapter.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-power_adapter.jpg
--------------------------------------------------------------------------------
/docs/Resources/19-power_connection.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-power_connection.jpg
--------------------------------------------------------------------------------
/docs/Resources/19-power_light.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-power_light.jpg
--------------------------------------------------------------------------------
/docs/Resources/19-power_mounting.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-power_mounting.jpg
--------------------------------------------------------------------------------
/docs/Resources/19-screw_mounting.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-screw_mounting.jpg
--------------------------------------------------------------------------------
/docs/Resources/19-tether_connection.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-tether_connection.jpg
--------------------------------------------------------------------------------
/docs/Resources/19-turtlebot_m8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-turtlebot_m8.png
--------------------------------------------------------------------------------
/docs/Resources/19-vis1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-vis1.png
--------------------------------------------------------------------------------
/docs/Resources/19-vis2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-vis2.png
--------------------------------------------------------------------------------
/docs/Resources/19-vis3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/19-vis3.png
--------------------------------------------------------------------------------
/docs/Resources/22b-data_rqtbag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/22b-data_rqtbag.png
--------------------------------------------------------------------------------
/docs/Resources/22b-rqt_bag_load_file.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/22b-rqt_bag_load_file.gif
--------------------------------------------------------------------------------
/docs/Resources/22b-rqt_bag_preview.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/22b-rqt_bag_preview.gif
--------------------------------------------------------------------------------
/docs/Resources/22b-rqt_bag_publish.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/22b-rqt_bag_publish.gif
--------------------------------------------------------------------------------
/docs/Resources/22b-rqt_bag_record.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/22b-rqt_bag_record.gif
--------------------------------------------------------------------------------
/docs/Resources/22b-rqt_play_bag.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/22b-rqt_play_bag.gif
--------------------------------------------------------------------------------
/docs/Resources/edit_connection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dabit-industries/turtlebot2-tutorials/801f35c0127f9d6448c074e0226c85d1c7017112/docs/Resources/edit_connection.png
--------------------------------------------------------------------------------