├── .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 | ![](Resources/01-explode_view_01.jpg) 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 | ![](Resources/01b-search_power.png) 5 | ![](Resources/01b-power_prompt.png) 6 | 7 | Stop Ubuntu from locking the screen: 8 | ![](Resources/01b-search_lock.png) 9 | ![](Resources/01b-lock_prompt.png) 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 | ![](Resources/03-turtlebot_dashboard.png) 42 | 43 | You may need to press the button that looks like a speedometer to show the Robot Monitor output. 44 | ![](Resources/03-turtlebot_spedometer.png) 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 | ![](Resources/04-turtlebot_keyboard_teleop_master.png) 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 | ![](Resources/04-turtlebot_keyboard_teleop.png) 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 | ![](Resources/04-turtlebot_follow_reconfigure.png) 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 | ![](Resources/05-rviz_turtlebot_view_model.png) 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 | ![](Resources/05-rviz_turtlebot_view_robot.png) 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 | ![](Resources/05-rviz_turtlebot_view_robot_displays.png) 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 | ![](Resources/00-turtlebot_dabit_gui.gif) 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. ![](Resources/22b-data_rqtbag.png) 12 | 2. ![](Resources/22b-rqt_bag_record.gif) 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. ![](Resources/22b-rqt_bag_load_file.gif) 19 | 5. Enable image previews in rqt_bag: 20 | 1. ![](Resources/22b-rqt_bag_preview.gif) 21 | 6. Enable topic publishing in rqt_bag: 22 | 1. ![](Resources/22b-rqt_bag_publish.gif) 23 | 7. Play the bag and visualize the data! 24 | 1. ![](Resources/22b-rqt_play_bag.gif) 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 --------------------------------------------------------------------------------