├── .github └── workflows │ └── manual.yml ├── CODEOWNERS ├── EKFLab.rviz ├── LICENSE ├── Outcome.png ├── README.md ├── RvizLaunch.launch ├── main ├── CMakeLists.txt ├── launch │ └── main.launch └── package.xml ├── odom_to_trajectory ├── CMakeLists.txt ├── README.md ├── launch │ └── create_trajectory.launch ├── package.xml └── scripts │ ├── path_ekf_plotter.py │ └── path_odom_plotter.py ├── robot_pose_ekf ├── CHANGELOG.rst ├── CMakeLists.txt ├── README.md ├── example_with_gps.launch ├── include │ └── robot_pose_ekf │ │ ├── nonlinearanalyticconditionalgaussianodo.h │ │ ├── odom_estimation.h │ │ └── odom_estimation_node.h ├── package.xml ├── plotekf.m ├── robot_pose_ekf.launch ├── scripts │ └── wtf.py ├── src │ ├── nonlinearanalyticconditionalgaussianodo.cpp │ ├── odom_estimation.cpp │ └── odom_estimation_node.cpp ├── srv │ └── GetStatus.srv └── test │ ├── test_robot_pose_ekf.cpp │ ├── test_robot_pose_ekf.launch │ ├── test_robot_pose_ekf_zero_covariance.cpp │ └── test_robot_pose_ekf_zero_covariance.launch ├── turtlebot ├── .gitignore ├── README.md ├── setup_create.sh ├── setup_kobuki.sh ├── turtlebot.rosinstall ├── turtlebot │ ├── .cproject │ ├── .project │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ └── package.xml ├── turtlebot_bringup │ ├── .cproject │ ├── .project │ ├── .pydevproject │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── env-hooks │ │ └── 25.turtlebot.sh.em │ ├── icons │ │ └── turtlebot2.png │ ├── interactions │ │ ├── admin.interactions │ │ ├── documentation.interactions │ │ ├── pairing.interactions │ │ └── visualisation.interactions │ ├── launch │ │ ├── 3dsensor.launch │ │ ├── concert_client.launch │ │ ├── concert_minimal.launch │ │ ├── includes │ │ │ ├── 3dsensor │ │ │ │ ├── astra.launch.xml │ │ │ │ ├── asus_xtion_pro.launch.xml │ │ │ │ ├── asus_xtion_pro_offset.launch.xml │ │ │ │ ├── kinect.launch.xml │ │ │ │ └── r200.launch.xml │ │ │ ├── capabilities.launch.xml │ │ │ ├── create │ │ │ │ └── mobile_base.launch.xml │ │ │ ├── description.launch.xml │ │ │ ├── kobuki │ │ │ │ ├── bumper2pc.launch.xml │ │ │ │ ├── mobile_base.launch.xml │ │ │ │ └── safety_controller.launch.xml │ │ │ ├── mobile_base.launch.xml │ │ │ ├── netbook.launch.xml │ │ │ ├── robot.launch.xml │ │ │ ├── roomba │ │ │ │ └── mobile_base.launch.xml │ │ │ └── zeroconf.launch.xml │ │ └── minimal.launch │ ├── package.xml │ ├── param │ │ ├── 3dsensor.yaml │ │ ├── capabilities │ │ │ └── defaults_tb2.yaml │ │ ├── create │ │ │ ├── capability_providers.yaml │ │ │ └── diagnostics.yaml │ │ ├── defaults │ │ │ ├── capability_providers.yaml │ │ │ └── smoother.yaml │ │ ├── kinect │ │ │ └── capability_providers.yaml │ │ ├── kobuki │ │ │ ├── capability_providers.yaml │ │ │ └── diagnostics.yaml │ │ ├── mux.yaml │ │ ├── preferred_rapp.yaml │ │ ├── roomba │ │ │ ├── capability_providers.yaml │ │ │ └── diagnostics.yaml │ │ ├── xtion │ │ │ └── capability_providers.yaml │ │ └── zeroconf.yaml │ └── scripts │ │ └── turtlebot_addr.py ├── turtlebot_capabilities.rosinstall ├── turtlebot_capabilities │ ├── .cproject │ ├── .project │ ├── .pydevproject │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── interfaces │ │ └── TurtleBotBringup.yaml │ ├── package.xml │ └── providers │ │ ├── depthimage_to_laserscan.yaml │ │ ├── diagnostics.yaml │ │ ├── differential_mobile_base.yaml │ │ ├── launch │ │ ├── depthimage_to_laserscan.launch │ │ ├── diagnostics.launch │ │ ├── placeholder.py │ │ ├── rgbd_sensor.launch │ │ ├── robot_state_publisher.launch │ │ ├── turtlebot2_bringup.launch │ │ └── turtlebot_bringup.launch │ │ ├── rgbd_sensor.yaml │ │ ├── robot_state_publisher.yaml │ │ ├── turtlebot2_bringup.yaml │ │ └── turtlebot_bringup.yaml ├── turtlebot_description │ ├── .cproject │ ├── .project │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── meshes │ │ ├── sensors │ │ │ ├── 0_xtion_pro.jpg │ │ │ ├── astra.dae │ │ │ ├── astra.jpg │ │ │ ├── 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 │ │ │ ├── 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_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 │ │ └── r200.urdf.xacro │ │ ├── stacks │ │ ├── circles.urdf.xacro │ │ └── hexagons.urdf.xacro │ │ ├── turtlebot_common_library.urdf.xacro │ │ ├── turtlebot_gazebo.urdf.xacro │ │ └── turtlebot_properties.urdf.xacro └── turtlebot_teleop │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── launch │ ├── includes │ │ └── velocity_smoother.launch.xml │ ├── keyboard_teleop.launch │ ├── logitech.launch │ ├── ps3_teleop.launch │ └── xbox360_teleop.launch │ ├── package.xml │ ├── param │ └── mux.yaml │ ├── scripts │ └── turtlebot_teleop_key │ └── src │ └── turtlebot_joy.cpp └── turtlebot_simulator ├── .gitignore ├── README.md ├── turtlebot_gazebo ├── .cproject ├── .project ├── CHANGELOG.rst ├── CMakeLists.txt ├── env-hooks │ └── 25.turtlebot-gazebo.sh.em ├── launch │ ├── amcl_demo.launch │ ├── gmapping_demo.launch │ ├── includes │ │ ├── create.launch.xml │ │ ├── kobuki.launch.xml │ │ └── roomba.launch.xml │ └── turtlebot_world.launch ├── maps │ ├── playground.pgm │ └── playground.yaml ├── package.xml └── worlds │ ├── corridor.world │ ├── empty.world │ └── playground.world ├── turtlebot_simulator.rosinstall ├── turtlebot_simulator ├── .cproject ├── .project ├── CHANGELOG.rst ├── CMakeLists.txt └── package.xml ├── turtlebot_stage ├── .cproject ├── .project ├── CHANGELOG.rst ├── CMakeLists.txt ├── env-hooks │ └── 25.turtlebot-stage.sh.em ├── launch │ └── turtlebot_in_stage.launch ├── maps │ ├── maze.png │ ├── maze.yaml │ ├── robopark2.bmp │ ├── robopark_plan.yaml │ └── stage │ │ ├── maze.world │ │ ├── robopark_plan.world │ │ └── turtlebot.inc ├── package.xml └── rviz │ └── robot_navigation.rviz └── turtlebot_stdr ├── .cproject ├── .project ├── .pydevproject ├── CHANGELOG.rst ├── CMakeLists.txt ├── documentation └── architecture_overview.png ├── env-hooks └── 25.turtlebot-stdr.sh.em ├── launch ├── includes │ └── relays.launch.xml └── turtlebot_in_stdr.launch ├── maps ├── frieburg.png ├── frieburg.yaml ├── hospital_section.png ├── hospital_section.yaml ├── mines.png ├── mines.yaml ├── robocup.png ├── robocup.yaml ├── simple_rooms.png ├── simple_rooms.yaml ├── sparse_obstacles.png └── sparse_obstacles.yaml ├── nodes └── tf_connector.py ├── package.xml ├── robot └── turtlebot.yaml └── rviz └── robot_navigation.rviz /.github/workflows/manual.yml: -------------------------------------------------------------------------------- 1 | # Workflow to ensure whenever a Github PR is submitted, 2 | # a JIRA ticket gets created automatically. 3 | name: Manual Workflow 4 | 5 | # Controls when the action will run. 6 | on: 7 | # Triggers the workflow on pull request events but only for the master branch 8 | pull_request_target: 9 | types: [opened, reopened] 10 | 11 | # Allows you to run this workflow manually from the Actions tab 12 | workflow_dispatch: 13 | 14 | jobs: 15 | test-transition-issue: 16 | name: Convert Github Issue to Jira Issue 17 | runs-on: ubuntu-latest 18 | steps: 19 | - name: Checkout 20 | uses: actions/checkout@master 21 | 22 | - name: Login 23 | uses: atlassian/gajira-login@master 24 | env: 25 | JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }} 26 | JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }} 27 | JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }} 28 | 29 | - name: Create NEW JIRA ticket 30 | id: create 31 | uses: atlassian/gajira-create@master 32 | with: 33 | project: CONUPDATE 34 | issuetype: Task 35 | summary: | 36 | Github PR [Assign the ND component] | Repo: ${{ github.repository }} | PR# ${{github.event.number}} 37 | description: | 38 | Repo link: https://github.com/${{ github.repository }} 39 | PR no. ${{ github.event.pull_request.number }} 40 | PR title: ${{ github.event.pull_request.title }} 41 | PR description: ${{ github.event.pull_request.description }} 42 | In addition, please resolve other issues, if any. 43 | fields: '{"components": [{"name":"Github PR"}], "customfield_16449":"https://classroom.udacity.com/", "customfield_16450":"Resolve the PR", "labels": ["github"], "priority":{"id": "4"}}' 44 | 45 | - name: Log created issue 46 | run: echo "Issue ${{ steps.create.outputs.issue }} was created" 47 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @udacity/active-public-content -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Udacity 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Outcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/Outcome.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Udacity - Robotics NanoDegree Program](https://s3-us-west-1.amazonaws.com/udacity-robotics/Extra+Images/RoboND_flag.png)](https://www.udacity.com/robotics) 2 | 3 | # RoboND-EKFLab 4 | In this lab, you will be applying an EKF ROS package to localize your robot inside a Gazebo environment. In the end, you will be able to drive the robot around in simulation and observe the `Odom` and `EKF` trajectories. 5 | 6 | ### Steps to Launch the Simulation 7 | Launch the simulation in the VM machine provided in Term1. 8 | 9 | #### Step 1 Create a Catkin Workspace 10 | ```sh 11 | $ mkdir -p /home/workspace/catkin_ws/src 12 | $ cd /home/workspace/catkin_ws/src 13 | $ catkin_init_workspace 14 | $ cd .. 15 | $ catkin_make 16 | ``` 17 | 18 | #### Step 2 Perform a System Update/Upgrade 19 | ```sh 20 | $ apt-get update 21 | $ apt-get upgrade -y 22 | ``` 23 | 24 | #### Step 3 Clone the Package in src 25 | ```sh 26 | $ cd /home/workspace/catkin_ws/src 27 | $ git clone https://github.com/udacity/RoboND-EKFLab 28 | ``` 29 | 30 | #### Step 4 Edit the main.launch file 31 | Under main/launch, edit the main.launch file: 32 | ```html 33 | Delete this: 34 | Replace with: 35 | ``` 36 | 37 | #### Step 5 Install Packages Dependancies 38 | ```sh 39 | $ cd /home/workspace/catkin_ws/ 40 | $ source devel/setup.bash 41 | $ rosdep -i install turtlebot_gazebo 42 | $ rosdep -i install turtlebot_teleop 43 | ``` 44 | 45 | #### Step 6 Build the Packages 46 | ```sh 47 | $ catkin_make 48 | $ source devel/setup.bash 49 | ``` 50 | 51 | #### Step 7 Launch the main file 52 | ```sh 53 | $ roslaunch main main.launch 54 | ``` 55 | Now, you should see Gazebo and rviz launching. Please note that Gazebo might take up to 3 min to launch! 56 | 57 | 58 | ### End Result 59 | In the terminal, use the keyboard commands(u-i-o-j-k-l-m-,-.) and drive the robot around. The `red` trajectory represents the `Odom path` whereas the `green` trajectory represents the `EKF path`. 60 | 61 | 62 | ![alt text](Outcome.png) 63 | 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /RvizLaunch.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /main/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | main 4 | 0.0.0 5 | The main package 6 | 7 | 8 | 9 | 10 | root 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 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | catkin 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /odom_to_trajectory/README.md: -------------------------------------------------------------------------------- 1 | [![Udacity - Robotics NanoDegree Program](https://s3-us-west-1.amazonaws.com/udacity-robotics/Extra+Images/RoboND_flag.png)](https://www.udacity.com/robotics) 2 | 3 | # odom_to_trajectory 4 | A ROS Package that subscribes to odometry values and publishes trajectories. This package will append the odometry values generated over time into vector of values. 5 | 6 | ### Nodes 7 | The package contains two nodes 8 | 1. **path_odom_plotter**: Subscribes to 2D unfiltered odometry, appends the robot last 1000 poses, and publishes the robot unfiltered trajectory. 9 | * Script File: path_odom_plotter.py 10 | * Subscriber: "/odom" 11 | * Publisher: "/odompath" 12 | 2. **path_ekf_plotter**: Subscribes to 3D filtered odometry, appends the robot last 1000 poses, and publishes the robot filtered trajectory. 13 | * Script File: path_ekf_plotter.py 14 | * Subscriber: "/robot_pose_ekf/odom_combined" 15 | * Publisher: "/ekfpath" 16 | 17 | ### Steps to launch the nodes 18 | #### Step1: Install the package 19 | ```sh 20 | $ cd /home/workspace/catkin_ws/src 21 | $ git clone https://github.com/udacity/odom_to_trajectory 22 | ``` 23 | #### Step2: Build the package 24 | ```sh 25 | $ cd /home/workspace/catkin_ws 26 | $ catkin_make 27 | $ source devel/setup.bash 28 | ``` 29 | #### Step3: Launch the nodes 30 | ```sh 31 | $ roslaunch odom_to_trajectory create_trajectory.launch 32 | ``` 33 | -------------------------------------------------------------------------------- /odom_to_trajectory/launch/create_trajectory.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /odom_to_trajectory/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | odom_to_trajectory 4 | 0.0.0 5 | The odom_to_trajectory package 6 | 7 | 8 | 9 | 10 | robond 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 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | catkin 52 | roscpp 53 | rospy 54 | std_msgs 55 | roscpp 56 | rospy 57 | std_msgs 58 | roscpp 59 | rospy 60 | std_msgs 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /robot_pose_ekf/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package robot_pose_ekf 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.14.2 (2017-08-14) 6 | ------------------- 7 | 8 | 1.14.1 (2017-08-07) 9 | ------------------- 10 | * Fix CMakeLists + package.xmls (`#548 `_) 11 | * Initialization of filter with GPS and odometry. 12 | * Contributors: Martin Günther, Vincent Rabaud, azaganidis 13 | 14 | 1.14.0 (2016-05-20) 15 | ------------------- 16 | * add to install script/ directory 17 | * add execute bit to scripts/wtf.py 18 | * robot_pose_ekf/src/odom_estimation_node.cpp: add to print gps sensor and used/not used in getStatus 19 | * Contributors: Kei Okada 20 | 21 | 1.13.1 (2015-10-29) 22 | ------------------- 23 | 24 | 1.13.0 (2015-03-17) 25 | ------------------- 26 | 27 | 1.12.0 (2015-02-04) 28 | ------------------- 29 | * update maintainer email 30 | * Contributors: Michael Ferguson 31 | 32 | 1.11.15 (2015-02-03) 33 | -------------------- 34 | * Fix bfl includes in robot_pose_ekf 35 | * Contributors: Jochen Sprickerhof 36 | 37 | 1.11.14 (2014-12-05) 38 | -------------------- 39 | 40 | 1.11.13 (2014-10-02) 41 | -------------------- 42 | 43 | 1.11.12 (2014-10-01) 44 | -------------------- 45 | * Fix EKF topic name so that it is unaffected by tf_prefix 46 | * Install launch files, closes `#249 `_ 47 | * Fixed hardcoded tf frames issue by fetching base_footprint_frame_ value from param server and using it in OdomEstimation filter 48 | * Fixed hardcoded tf frames issue by adding variables for output and base_footprint frames along with mutator methods 49 | * Contributors: Jochen Sprickerhof, Michael Ferguson, Murilo FM 50 | 51 | 1.11.11 (2014-07-23) 52 | -------------------- 53 | 54 | 1.11.10 (2014-06-25) 55 | -------------------- 56 | 57 | 1.11.9 (2014-06-10) 58 | ------------------- 59 | * fix robot_pose_ekf test 60 | * Contributors: Michael Ferguson 61 | 62 | 1.11.8 (2014-05-21) 63 | ------------------- 64 | * fix build, was broken by `#175 `_ 65 | * Contributors: Michael Ferguson 66 | 67 | 1.11.7 (2014-05-21) 68 | ------------------- 69 | * Even longer Time limit for EKF Test 70 | * make rostest in CMakeLists optional 71 | * Contributors: David Lu!!, Lukas Bulwahn 72 | 73 | 1.11.5 (2014-01-30) 74 | ------------------- 75 | * check for CATKIN_ENABLE_TESTING 76 | * Download test data from download.ros.org instead of willow 77 | * Change maintainer from Hersh to Lu 78 | 79 | 1.11.4 (2013-09-27) 80 | ------------------- 81 | * Package URL Updates 82 | * upgrade depracated download data calls. 83 | * use tf_prefix to lookup and send transforms 84 | -------------------------------------------------------------------------------- /robot_pose_ekf/README.md: -------------------------------------------------------------------------------- 1 | [![Udacity - Robotics NanoDegree Program](https://s3-us-west-1.amazonaws.com/udacity-robotics/Extra+Images/RoboND_flag.png)](https://www.udacity.com/robotics) 2 | 3 | # robot_pose_ekf package 4 | The [robot_pose_ekf](http://wiki.ros.org/robot_pose_ekf) ROS package applies sensor fusion on the robot IMU and odometry values to estimate its 3D pose. 5 | 6 | ### Nodes 7 | The package contains a single node 8 | 1. **robot_pose_ekf**: Implements an Extended Kalman Filter, subscribes to robot measurements, and publishes a filtered 3D pose. 9 | * Script File: wtf.py 10 | * Subscriber: "/odom", "/imu_data", and "/vo " 11 | * Publisher: "/robot_pose_ekf/odom_combined" 12 | 13 | ### Steps to launch the nodes 14 | #### Step1: Install the package 15 | ```sh 16 | $ cd /home/workspace/catkin_ws/src/ 17 | $ git clone https://github.com/udacity/robot_pose_ekf 18 | ``` 19 | #### Step2: Edit the robot_pose_ekf.launch file 20 | ```html 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | ``` 38 | #### Step3: Build the package 39 | $ cd /home/workspace/catkin_ws 40 | $ catkin_make 41 | $ source devel/setup.bash 42 | #### Step4: Launch the node 43 | $ roslaunch robot_pose_ekf robot_pose_ekf.launch 44 | -------------------------------------------------------------------------------- /robot_pose_ekf/example_with_gps.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /robot_pose_ekf/include/robot_pose_ekf/nonlinearanalyticconditionalgaussianodo.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008 Wim Meeussen 2 | // 3 | // This program is free software; you can redistribute it and/or modify 4 | // it under the terms of the GNU Lesser General Public License as published by 5 | // the Free Software Foundation; either version 2.1 of the License, or 6 | // (at your option) any later version. 7 | // 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU Lesser General Public License for more details. 12 | // 13 | // You should have received a copy of the GNU Lesser General Public License 14 | // along with this program; if not, write to the Free Software 15 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 16 | // 17 | 18 | 19 | #ifndef __NON_LINEAR_SYSTEM_CONDITIONAL_GAUSSIAN_ODO__ 20 | #define __NON_LINEAR_SYSTEM_CONDITIONAL_GAUSSIAN_ODO__ 21 | 22 | #include 23 | 24 | namespace BFL 25 | { 26 | /// Non Linear Conditional Gaussian 27 | /** 28 | - \f$ \mu = Matrix[1] . ConditionalArguments[0] + 29 | Matrix[2]. ConditionalArguments[1] + ... + Noise.\mu \f$ 30 | - Covariance is independent of the ConditionalArguments, and is 31 | the covariance of the Noise pdf 32 | */ 33 | class NonLinearAnalyticConditionalGaussianOdo : public AnalyticConditionalGaussianAdditiveNoise 34 | { 35 | public: 36 | /// Constructor 37 | /** @pre: Every Matrix should have the same amount of rows! 38 | This is currently not checked. The same goes for the number 39 | of columns, which should be equal to the number of rows of 40 | the corresponding conditional argument! 41 | @param additiveNoise Pdf representing the additive Gaussian uncertainty 42 | */ 43 | NonLinearAnalyticConditionalGaussianOdo( const Gaussian& additiveNoise); 44 | 45 | /// Destructor 46 | virtual ~NonLinearAnalyticConditionalGaussianOdo(); 47 | 48 | // redefine virtual functions 49 | virtual MatrixWrapper::ColumnVector ExpectedValueGet() const; 50 | virtual MatrixWrapper::Matrix dfGet(unsigned int i) const; 51 | 52 | private: 53 | mutable MatrixWrapper::Matrix df; 54 | }; 55 | 56 | } // End namespace BFL 57 | 58 | #endif // 59 | -------------------------------------------------------------------------------- /robot_pose_ekf/package.xml: -------------------------------------------------------------------------------- 1 | 2 | robot_pose_ekf 3 | 1.14.2 4 | 5 | 6 | The Robot Pose EKF package is used to estimate the 3D pose of a robot, based on (partial) pose measurements coming from different sources. It uses an extended Kalman filter with a 6D model (3D position and 3D orientation) to combine measurements from wheel odometry, IMU sensor and visual odometry. The basic idea is to offer loosely coupled integration with different sensors, where sensor signals are received as ROS messages. 7 | 8 | 9 | Wim Meeussen 10 | contradict@gmail.com 11 | David V. Lu!! 12 | Michael Ferguson 13 | BSD 14 | http://wiki.ros.org/robot_pose_ekf 15 | 16 | catkin 17 | 18 | message_generation 19 | roscpp 20 | bfl 21 | std_msgs 22 | geometry_msgs 23 | sensor_msgs 24 | nav_msgs 25 | tf 26 | 27 | message_runtime 28 | roscpp 29 | bfl 30 | std_msgs 31 | geometry_msgs 32 | sensor_msgs 33 | nav_msgs 34 | tf 35 | 36 | rosbag 37 | rostest 38 | 39 | -------------------------------------------------------------------------------- /robot_pose_ekf/plotekf.m: -------------------------------------------------------------------------------- 1 | load /tmp/odom_file.txt; 2 | %load vo_file.txt; 3 | load /tmp/corr_file.txt; 4 | load /tmp/gps_file.txt; 5 | load /tmp/imu_file.txt; 6 | 7 | figure; 8 | hold on; 9 | axis equal; 10 | plot(odom_file(:,2), odom_file(:,3),'b'); 11 | %plot(vo_file(:,2),vo_file(:,3),'g'); 12 | plot(corr_file(:,2), corr_file(:,3),'r'); 13 | plot(gps_file(:,2), gps_file(:,3),'k'); 14 | legend('Wheel Odometry', 'Filter output', 'GPS Measurements'); 15 | %legend('Wheel Odometry','Visual Odometry', 'Filter output', 'GPS Measurements'); 16 | %legend('Wheel Odometry','Visual Odometry', 'Filter output'); 17 | hold off; 18 | 19 | figure; 20 | subplot(3,1,1) 21 | hold on; 22 | plot(odom_file(:,1),odom_file(:,2),'b'); 23 | %plot(vo_file(:,1),vo_file(:,2),'g'); 24 | plot(corr_file(:,1),corr_file(:,2),'r'); 25 | plot(gps_file(:,1), gps_file(:,2), 'k'); 26 | legend('Wheel Odometry', 'Filter output', 'GPS Measurements'); 27 | %legend('Wheel Odometry','Visual Odometry', 'Filter output', 'GPS Measurements'); 28 | %legend('Wheel Odometry','Visual Odometry', 'Filter output'); 29 | subplot(3,1,2) 30 | hold on; 31 | plot(odom_file(:,1),odom_file(:,3),'b'); 32 | %plot(vo_file(:,1),vo_file(:,3),'g'); 33 | plot(corr_file(:,1),corr_file(:,3),'r'); 34 | plot(gps_file(:,1), gps_file(:,3), 'k'); 35 | legend('Wheel Odometry', 'Filter output', 'GPS Measurements'); 36 | %legend('Wheel Odometry','Visual Odometry', 'Filter output', 'GPS Measurements'); 37 | %legend('Wheel Odometry','Visual Odometry', 'Filter output'); 38 | 39 | subplot(3,1,3) 40 | hold on; 41 | plot(odom_file(:,1),odom_file(:,4),'b'); 42 | %plot(vo_file(:,1),vo_file(:,7),'g'); 43 | plot(corr_file(:,1),corr_file(:,7),'r'); 44 | plot(imu_file(:,1), imu_file(:,2), 'k'); 45 | legend('Wheel Odometry', 'Filter output', 'IMU Measurements'); 46 | %legend('Wheel Odometry','Visual Odometry', 'Filter output', 'IMU Measurements'); 47 | 48 | 49 | 50 | error_odom = sqrt( (odom_file(1,2)-odom_file(end,2))^2 + (odom_file(1,3)-odom_file(end,3))^2 ) 51 | %error_vo = sqrt( (vo_file(1,2)-vo_file(end,2))^2 + (vo_file(1,3)-vo_file(end,3))^2 ) 52 | error_corr = sqrt( (corr_file(1,2)-corr_file(end,2))^2 + (corr_file(1,3)-corr_file(end,3))^2 ) 53 | error_gps = sqrt( (gps_file(1,2)-gps_file(end,2))^2 + (gps_file(1,3)-gps_file(end,3))^2 ) 54 | -------------------------------------------------------------------------------- /robot_pose_ekf/robot_pose_ekf.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /robot_pose_ekf/scripts/wtf.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import rospy 4 | from robot_pose_ekf.srv import GetStatus, GetStatusRequest 5 | 6 | if __name__ == '__main__': 7 | rospy.init_node('spawner', anonymous=True) 8 | print 'looking for node robot_pose_ekf...' 9 | rospy.wait_for_service('robot_pose_ekf/get_status') 10 | 11 | s = rospy.ServiceProxy('robot_pose_ekf/get_status', GetStatus) 12 | resp = s.call(GetStatusRequest()) 13 | print resp.status 14 | -------------------------------------------------------------------------------- /robot_pose_ekf/src/nonlinearanalyticconditionalgaussianodo.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008 Wim Meeussen 2 | // 3 | // This program is free software; you can redistribute it and/or modify 4 | // it under the terms of the GNU Lesser General Public License as published by 5 | // the Free Software Foundation; either version 2.1 of the License, or 6 | // (at your option) any later version. 7 | // 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU Lesser General Public License for more details. 12 | // 13 | // You should have received a copy of the GNU Lesser General Public License 14 | // along with this program; if not, write to the Free Software 15 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 16 | // 17 | 18 | #include 19 | #include // Wrapper around several rng libraries 20 | #define NUMCONDARGUMENTS_MOBILE 2 21 | 22 | namespace BFL 23 | { 24 | using namespace MatrixWrapper; 25 | 26 | 27 | NonLinearAnalyticConditionalGaussianOdo::NonLinearAnalyticConditionalGaussianOdo(const Gaussian& additiveNoise) 28 | : AnalyticConditionalGaussianAdditiveNoise(additiveNoise,NUMCONDARGUMENTS_MOBILE), 29 | df(6,6) 30 | { 31 | // initialize df matrix 32 | for (unsigned int i=1; i<=6; i++){ 33 | for (unsigned int j=1; j<=6; j++){ 34 | if (i==j) df(i,j) = 1; 35 | else df(i,j) = 0; 36 | } 37 | } 38 | } 39 | 40 | 41 | NonLinearAnalyticConditionalGaussianOdo::~NonLinearAnalyticConditionalGaussianOdo(){} 42 | 43 | ColumnVector NonLinearAnalyticConditionalGaussianOdo::ExpectedValueGet() const 44 | { 45 | ColumnVector state = ConditionalArgumentGet(0); 46 | ColumnVector vel = ConditionalArgumentGet(1); 47 | state(1) += cos(state(6)) * vel(1); 48 | state(2) += sin(state(6)) * vel(1); 49 | state(6) += vel(2); 50 | return state + AdditiveNoiseMuGet(); 51 | } 52 | 53 | Matrix NonLinearAnalyticConditionalGaussianOdo::dfGet(unsigned int i) const 54 | { 55 | if (i==0)//derivative to the first conditional argument (x) 56 | { 57 | double vel_trans = ConditionalArgumentGet(1)(1); 58 | double yaw = ConditionalArgumentGet(0)(6); 59 | 60 | df(1,3)=-vel_trans*sin(yaw); 61 | df(2,3)= vel_trans*cos(yaw); 62 | 63 | return df; 64 | } 65 | else 66 | { 67 | if (i >= NumConditionalArgumentsGet()) 68 | { 69 | cerr << "This pdf Only has " << NumConditionalArgumentsGet() << " conditional arguments\n"; 70 | exit(-BFL_ERRMISUSE); 71 | } 72 | else{ 73 | cerr << "The df is not implemented for the" < 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /robot_pose_ekf/test/test_robot_pose_ekf_zero_covariance.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /turtlebot/.gitignore: -------------------------------------------------------------------------------- 1 | .settings 2 | bin 3 | build 4 | lib 5 | *.swp 6 | *.swo 7 | *.pyc 8 | -------------------------------------------------------------------------------- /turtlebot/README.md: -------------------------------------------------------------------------------- 1 | turtlebot 2 | ========= 3 | 4 | The turtlebot stack provides all the basic drivers for running and using a [TurtleBot](http://turtlebot.com) with [ROS](http://www.ros.org). 5 | 6 | ROS Wiki : (http://www.ros.org/wiki/Robots/TurtleBot) 7 | 8 | 9 | 10 | 11 | ![TurtleBot Logo](http://www.turtlebot.com/assets/images/turtlebot_logo.png) 12 | -------------------------------------------------------------------------------- /turtlebot/setup_create.sh: -------------------------------------------------------------------------------- 1 | # This configures the environment variables for a create based turtlebot 2 | # running the Turtlebot 2.0 software. This is necessary to run after 3 | # setup.bash to ensure the create drivers and nodes are all correctly launched. 4 | # 5 | # You may wish to set the 3d sensor to asus_xtion_pro if you do not have a kinect 6 | # though. While the kinect settings work for the asus in terms of 3d sensing (openni 7 | # handles the abstraction) the asus settiing makes sure the mesh shown in rviz/gazebo 8 | # is the asus. 9 | 10 | export TURTLEBOT_BASE=create 11 | export TURTLEBOT_STACKS=circles 12 | export TURTLEBOT_3D_SENSOR=kinect 13 | export TURTLEBOT_SIMULATION=false 14 | -------------------------------------------------------------------------------- /turtlebot/setup_kobuki.sh: -------------------------------------------------------------------------------- 1 | # This configures the environment variables for a kobuki based turtlebot. 2 | # Currently this script isn't actually needed as the values below are 3 | # defaults. 4 | # 5 | # You may wish to set the 3d sensor to asus_xtion_pro if you do not have a kinect 6 | # though. While the kinect settings work for the asus in terms of 3d sensing (openni 7 | # handles the abstraction) the asus settiing makes sure the mesh shown in rviz/gazebo 8 | # is the asus. 9 | 10 | export TURTLEBOT_BASE=kobuki 11 | export TURTLEBOT_STACKS=hexagons 12 | export TURTLEBOT_3D_SENSOR=kinect 13 | export TURTLEBOT_SIMULATION=false 14 | -------------------------------------------------------------------------------- /turtlebot/turtlebot.rosinstall: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # 3 | # Source installation instructions at: 4 | # 5 | # http://www.ros.org/wiki/turtlebot/Tutorials/hydro/Source%20Installation 6 | # 7 | ############################################################################## 8 | 9 | # Make sure to install these ROCON packages as well: 10 | # https://raw.github.com/robotics-in-concert/rocon/indigo/rocon_app_platform.rosinstall 11 | 12 | # Kobuki / Yujin stacks 13 | 14 | - git: 15 | uri: https://github.com/yujinrobot/kobuki_desktop.git 16 | local-name: kobuki_desktop 17 | version: indigo 18 | 19 | - git: 20 | uri: https://github.com/yujinrobot/yocs_msgs.git 21 | local-name: yocs_msgs 22 | version: indigo 23 | 24 | - git: 25 | uri: https://github.com/yujinrobot/yujin_ocs.git 26 | local-name: yujin_ocs 27 | version: indigo 28 | 29 | - git: 30 | uri: https://github.com/yujinrobot/kobuki_msgs.git 31 | local-name: kobuki_msgs 32 | version: indigo 33 | 34 | - git: 35 | uri: https://github.com/yujinrobot/kobuki_core.git 36 | local-name: kobuki_core 37 | version: indigo 38 | 39 | - git: 40 | uri: https://github.com/yujinrobot/kobuki.git 41 | local-name: kobuki 42 | version: indigo 43 | 44 | # Create stacks 45 | 46 | - git: 47 | uri: https://github.com/turtlebot/turtlebot_create.git 48 | local-name: turtlebot_create 49 | version: indigo 50 | 51 | - git: 52 | uri: https://github.com/turtlebot/turtlebot_create_desktop.git 53 | local-name: turtlebot_create_desktop 54 | version: indigo 55 | 56 | # Turtlebot stacks 57 | 58 | - git: 59 | uri: https://github.com/turtlebot/turtlebot_msgs.git 60 | local-name: turtlebot_msgs 61 | version: indigo 62 | 63 | - git: 64 | uri: https://github.com/turtlebot/turtlebot.git 65 | local-name: turtlebot 66 | version: indigo 67 | 68 | - git: 69 | uri: https://github.com/turtlebot/turtlebot_simulator.git 70 | local-name: turtlebot_simulator 71 | version: indigo 72 | 73 | - git: 74 | uri: https://github.com/turtlebot/turtlebot_apps.git 75 | local-name: turtlebot_apps 76 | version: indigo 77 | 78 | - git: 79 | uri: https://github.com/turtlebot/turtlebot_interactions.git 80 | local-name: turtlebot_interactions 81 | version: indigo 82 | -------------------------------------------------------------------------------- /turtlebot/turtlebot/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | turtlebot 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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package turtlebot 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 2.4.2 (2016-12-22) 6 | ------------------ 7 | 8 | 2.4.1 (2016-12-22) 9 | ------------------ 10 | 11 | 2.4.0 (2016-11-01) 12 | ------------------ 13 | 14 | 2.3.12 (2016-06-27) 15 | ------------------- 16 | 17 | 2.3.11 (2015-04-15) 18 | ------------------- 19 | 20 | 2.3.10 (2015-04-02) 21 | ------------------- 22 | 23 | 2.3.9 (2015-03-30) 24 | ------------------ 25 | 26 | 2.3.8 (2015-03-23) 27 | ------------------ 28 | 29 | 2.3.7 (2015-03-02) 30 | ------------------ 31 | 32 | 2.3.6 (2015-02-27) 33 | ------------------ 34 | 35 | 2.3.5 (2015-01-12) 36 | ------------------ 37 | 38 | 2.3.4 (2015-01-07) 39 | ------------------ 40 | 41 | 2.3.3 (2015-01-05) 42 | ------------------ 43 | 44 | 2.3.2 (2014-12-30) 45 | ------------------ 46 | * cleanup metapackage. add teleop and remove laptop battery_monitor 47 | * Contributors: Jihoon Lee 48 | 49 | 2.3.1 (2014-12-30) 50 | ------------------ 51 | 52 | 2.3.0 (2014-11-30) 53 | ------------------ 54 | * migrate linux_hardware as linux_peripheral_interfaces repo 55 | * adds turtlebot_capabilities package and related changes 56 | * Contributors: Jihoon Lee, Marcus Liebhardt 57 | 58 | 2.2.2 (2013-10-14) 59 | ------------------ 60 | 61 | 2.2.1 (2013-09-14) 62 | ------------------ 63 | * CMake logic bugfixes. 64 | 65 | 2.2.0 (2013-08-29) 66 | ------------------ 67 | * Changelogs at package level. 68 | * Add eclipse project files. 69 | 70 | Release 2.1.x - hydro, unstable 71 | =============================== 72 | 73 | 2.1.1 (2013-08-06) 74 | ------------------ 75 | 76 | 2.1.0 (2013-07-15) 77 | ------------------ 78 | * Remove obsolete turtlebot_app_manager, as on Hydro we use rocon_app_manager 79 | -------------------------------------------------------------------------------- /turtlebot/turtlebot/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(turtlebot) 3 | find_package(catkin REQUIRED) 4 | catkin_metapackage() 5 | -------------------------------------------------------------------------------- /turtlebot/turtlebot/package.xml: -------------------------------------------------------------------------------- 1 | 2 | turtlebot 3 | 2.4.2 4 | 5 | The turtlebot meta package provides all the basic drivers for running and using a TurtleBot. 6 | 7 | Tully Foote 8 | Michael Ferguson 9 | Melonee Wise 10 | Daniel Stonier 11 | Tully Foote 12 | Michael Ferguson 13 | Melonee Wise 14 | BSD 15 | http://ros.org/wiki/turtlebot 16 | https://github.com/turtlebot/turtlebot 17 | https://github.com/turtlebot/turtlebot/issues 18 | 19 | catkin 20 | 21 | turtlebot_bringup 22 | turtlebot_capabilities 23 | turtlebot_description 24 | turtlebot_teleop 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | turtlebot_bringup 4 | 5 | 6 | 7 | 8 | 9 | org.python.pydev.PyDevBuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 15 | clean,full,incremental, 16 | 17 | 18 | ?name? 19 | 20 | 21 | 22 | org.eclipse.cdt.make.core.append_environment 23 | true 24 | 25 | 26 | org.eclipse.cdt.make.core.autoBuildTarget 27 | all 28 | 29 | 30 | org.eclipse.cdt.make.core.buildArguments 31 | 32 | 33 | 34 | org.eclipse.cdt.make.core.buildCommand 35 | make 36 | 37 | 38 | org.eclipse.cdt.make.core.cleanBuildTarget 39 | clean 40 | 41 | 42 | org.eclipse.cdt.make.core.contents 43 | org.eclipse.cdt.make.core.activeConfigSettings 44 | 45 | 46 | org.eclipse.cdt.make.core.enableAutoBuild 47 | false 48 | 49 | 50 | org.eclipse.cdt.make.core.enableCleanBuild 51 | true 52 | 53 | 54 | org.eclipse.cdt.make.core.enableFullBuild 55 | true 56 | 57 | 58 | org.eclipse.cdt.make.core.fullBuildTarget 59 | all 60 | 61 | 62 | org.eclipse.cdt.make.core.stopOnError 63 | true 64 | 65 | 66 | org.eclipse.cdt.make.core.useDefaultBuildCmd 67 | true 68 | 69 | 70 | 71 | 72 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 73 | full,incremental, 74 | 75 | 76 | 77 | 78 | 79 | org.eclipse.cdt.core.cnature 80 | org.eclipse.cdt.core.ccnature 81 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 82 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 83 | org.python.pydev.pythonNature 84 | 85 | 86 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/.pydevproject: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Default 6 | python 2.7 7 | 8 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(turtlebot_bringup) 3 | 4 | find_package(catkin REQUIRED COMPONENTS) 5 | 6 | catkin_package() 7 | 8 | catkin_add_env_hooks(25.turtlebot SHELLS sh DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/env-hooks) 9 | 10 | install( 11 | PROGRAMS 12 | scripts/turtlebot_addr.py 13 | DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 14 | ) 15 | 16 | install(DIRECTORY launch 17 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 18 | ) 19 | 20 | install(DIRECTORY param 21 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 22 | ) 23 | 24 | install(DIRECTORY icons 25 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 26 | ) 27 | 28 | install(DIRECTORY interactions 29 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 30 | ) 31 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/env-hooks/25.turtlebot.sh.em: -------------------------------------------------------------------------------- 1 | # Set some sane defaults for the turtlebot launch environment 2 | 3 | ##Documentation: 4 | # The colon command simply has its arguments evaluated and then succeeds. 5 | # It is the original shell comment notation (before '#' to end of line). For a long time, Bourne shell scripts had a colon as the first character. 6 | # The C Shell would read a script and use the first character to determine whether it was for the C Shell (a '#' hash) or the Bourne shell (a ':' colon). 7 | # Then the kernel got in on the act and added support for '#!/path/to/program' and the Bourne shell got '#' comments, and the colon convention went by the wayside. 8 | # But if you come across a script that starts with a colon (Like this one), now you will know why. ~ Jonathan Leffler 9 | 10 | : ${TURTLEBOT_BASE:=kobuki} # create, roomba 11 | : ${TURTLEBOT_BATTERY:=/sys/class/power_supply/BAT0} # /proc/acpi/battery/BAT0 in 2.6 or earlier kernels, /sys/class/power_supply/ (kernels 3.0+) 12 | : ${TURTLEBOT_STACKS:=hexagons} # circles, hexagons 13 | : ${TURTLEBOT_3D_SENSOR:=asus_xtion_pro} # kinect, asus_xtion_pro, asus_xtion_pro_offset 14 | : ${TURTLEBOT_SIMULATION:=false} 15 | : ${TURTLEBOT_SERIAL_PORT:=/dev/kobuki} # /dev/ttyUSB0, /dev/ttyS0 16 | 17 | : ${TURTLEBOT_NAME:=turtlebot} 18 | : ${TURTLEBOT_TYPE:=turtlebot} 19 | : ${TURTLEBOT_RAPP_PACKAGE_WHITELIST:=[rocon_apps, turtlebot_rapps]} 20 | : ${TURTLEBOT_RAPP_PACKAGE_BLACKLIST:=[]} 21 | : ${TURTLEBOT_INTERACTIONS_LIST:=[turtlebot_bringup/admin.interactions, turtlebot_bringup/documentation.interactions, turtlebot_bringup/pairing.interactions, turtlebot_bringup/visualisation.interactions]} 22 | 23 | # Exports 24 | export TURTLEBOT_BASE 25 | export TURTLEBOT_BATTERY 26 | export TURTLEBOT_STACKS 27 | export TURTLEBOT_3D_SENSOR 28 | export TURTLEBOT_SIMULATION 29 | export TURTLEBOT_SERIAL_PORT 30 | export TURTLEBOT_NAME 31 | export TURTLEBOT_TYPE 32 | export TURTLEBOT_RAPP_PACKAGE_WHITELIST 33 | export TURTLEBOT_RAPP_PACKAGE_BLACKLIST 34 | export TURTLEBOT_INTERACTIONS_LIST 35 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/icons/turtlebot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_bringup/icons/turtlebot2.png -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/interactions/admin.interactions: -------------------------------------------------------------------------------- 1 | # .-----------------------------------------------------------------. 2 | # / .-. .-. \ 3 | #| / \ / \ | 4 | #| |\_. | Admin Interactions | /| | 5 | #|\| | /| |\ | |/| 6 | #| `---' | | `---' | 7 | #| | | | * 8 | #| |-----------------------------------------------------| | 9 | #\ | | / 10 | # \ / \ / 11 | # `---' `---' 12 | 13 | - name: rocon_master_info 14 | role: 'Admin' 15 | compatibility: rocon:/pc/*/hydro|indigo/precise|quantal|raring|saucy|trusty 16 | display_name: Rocon Master Info (Direct Executable) 17 | description: Generic information about this master. 18 | max: -1 19 | 20 | - name: rqt_graph/rqt_graph 21 | role: 'Admin' 22 | compatibility: rocon:/pc/*/hydro|indigo/precise|quantal|raring|saucy|trusty 23 | display_name: Rqt Graph (Ros Runnable) 24 | description: Graph of all topics and services in the concert workspace. 25 | max: -1 26 | icon: 27 | resource_name: rocon_bubble_icons/rqt.png 28 | 29 | - name: rqt_console/rqt_console 30 | role: 'Admin' 31 | compatibility: rocon:/pc/*/hydro|indigo/precise|quantal|raring|saucy|trusty 32 | display_name: Rqt Console (Ros Runnable) 33 | description: Shows the Rqt Console 34 | max: -1 35 | icon: 36 | resource_name: rocon_bubble_icons/rqt.png -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/interactions/documentation.interactions: -------------------------------------------------------------------------------- 1 | # .-----------------------------------------------------------------. 2 | # / .-. .-. \ 3 | #| / \ / \ | 4 | #| |\_. | Documentation Interactions | /| | 5 | #|\| | /| |\ | |/| 6 | #| `---' | | `---' | 7 | #| | | | * 8 | #| |-----------------------------------------------------| | 9 | #\ | | / 10 | # \ / \ / 11 | # `---' `---' 12 | 13 | 14 | - name: web_url(http://wiki.ros.org/Robots/TurtleBot?distro=indigo) 15 | role: 'Documentation' 16 | compatibility: rocon:/pc 17 | display_name: Ros Wiki - TurtleBot 18 | description: Documentation for TurtleBot on the ros wiki 19 | icon: 20 | resource_name: rocon_bubble_icons/ros.png 21 | 22 | - name: web_url(https://plus.google.com/+TurtleBot/posts) 23 | role: 'Documentation' 24 | compatibility: rocon:/pc 25 | display_name: TurtleBot Google+ 26 | description: Official TurtleBot Google+ 27 | icon: 28 | resource_name: rocon_bubble_icons/ros.png 29 | 30 | - name: web_url(http://kobuki.yujinrobot.com/home-en/) 31 | role: 'Documentation' 32 | compatibility: rocon:/pc 33 | display_name: TurtleBot 2 Kobuki Page 34 | description: Official TurtleBot 2 Kobuki Page 35 | icon: 36 | resource_name: rocon_bubble_icons/ros.png 37 | 38 | - name: web_url(https://groups.google.com/forum/#!forum/ros-sig-turtlebot) 39 | role: 'Documentation' 40 | compatibility: rocon:/pc 41 | display_name: ROS TurtleBot Special Interest Group 42 | description: Google Groups page for ROS TurtleBot Special Interest Group 43 | icon: 44 | resource_name: rocon_bubble_icons/ros.png 45 | 46 | - name: web_url(http://answers.ros.org/questions/scope:all/sort:activity-desc/page:1/query:turtlebot%7Ckobuki%7Cturtlebot2/) 47 | role: 'Documentation' 48 | compatibility: rocon:/pc 49 | display_name: ROS Answers 50 | description: ROS Answers for TurtleBot, Kobuki, and TurtleBot 2 51 | icon: 52 | resource_name: rocon_bubble_icons/ros.png 53 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/interactions/visualisation.interactions: -------------------------------------------------------------------------------- 1 | # .-----------------------------------------------------------------. 2 | # / .-. .-. \ 3 | #| / \ / \ | 4 | #| |\_. | Visualisation Interactions | /| | 5 | #|\| | /| |\ | |/| 6 | #| `---' | | `---' | 7 | #| | | | * 8 | #| |-----------------------------------------------------| | 9 | #\ | | / 10 | # \ / \ / 11 | # `---' `---' 12 | 13 | 14 | - name: turtlebot_rviz_launchers/view_model.launch 15 | role: Visualisation 16 | compatibility: rocon:/pc/*/hydro|indigo/precise|quantal|raring|saucy|trusty 17 | display_name: View Model 18 | description: View the robot model (only). 19 | max: -1 20 | icon: 21 | resource_name: rocon_bubble_icons/rviz.png 22 | 23 | - name: turtlebot_rviz_launchers/view_robot.launch 24 | role: Visualisation 25 | compatibility: rocon:/pc/*/hydro|indigo/precise|quantal|raring|saucy|trusty 26 | display_name: View Robot 27 | description: View the robot with basic sensor connections hooked up. 28 | max: -1 29 | icon: 30 | resource_name: rocon_bubble_icons/rviz.png 31 | 32 | 33 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/launch/includes/create/mobile_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 | 40 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/launch/includes/description.launch.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/launch/includes/kobuki/bumper2pc.launch.xml: -------------------------------------------------------------------------------- 1 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/launch/includes/kobuki/safety_controller.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/launch/includes/netbook.launch.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/launch/includes/roomba/mobile_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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/launch/includes/zeroconf.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/package.xml: -------------------------------------------------------------------------------- 1 | 2 | turtlebot_bringup 3 | 2.4.2 4 | 5 | turtlebot_bringup provides roslaunch scripts for starting the TurtleBot base functionality. 6 | 7 | Tully Foote 8 | Daniel Stonier 9 | BSD 10 | http://ros.org/wiki/turtlebot_bringup 11 | https://github.com/turtlebot/turtlebot 12 | https://github.com/turtlebot/turtlebot/issues 13 | 14 | catkin 15 | 16 | realsense_camera 17 | astra_launch 18 | zeroconf_avahi 19 | yocs_cmd_vel_mux 20 | kobuki_capabilities 21 | kobuki_node 22 | kobuki_bumper2pc 23 | kobuki_safety_controller 24 | create_node 25 | turtlebot_capabilities 26 | turtlebot_description 27 | robot_state_publisher 28 | robot_pose_ekf 29 | diagnostic_aggregator 30 | openni2_launch 31 | freenect_launch 32 | laptop_battery_monitor 33 | rocon_app_manager 34 | rocon_bubble_icons 35 | depthimage_to_laserscan 36 | 37 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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' -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/param/create/capability_providers.yaml: -------------------------------------------------------------------------------- 1 | # default providers for the Create -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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' -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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.8 7 | speed_lim_w: 5.4 8 | 9 | accel_lim_v: 1.0 # maximum is actually 2.0, but we push it down to be smooth 10 | accel_lim_w: 2.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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/param/kinect/capability_providers.yaml: -------------------------------------------------------------------------------- 1 | # default capability providers for the Microsoft Kinect 2 | defaults: 3 | 'std_capabilities/RGBDSensor': 'turtlebot_capabilities/kinect_rgbd_sensor' -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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' -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/param/roomba/capability_providers.yaml: -------------------------------------------------------------------------------- 1 | # default providers for the Roomba -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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' -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_bringup/scripts/turtlebot_addr.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # warning: we don't express a rosdep on netifaces. This is part of the turtlebot image 3 | import sys 4 | import netifaces 5 | 6 | for inf in netifaces.interfaces(): 7 | if inf.startswith('wlan'): 8 | addrs = netifaces.ifaddresses(inf) 9 | if not netifaces.AF_INET in addrs: 10 | continue 11 | else: 12 | print addrs[netifaces.AF_INET][0]['addr'] 13 | break 14 | else: 15 | print >> sys.stderr, "failed to determine IP address" 16 | print "127.0.0.1" #bind to loopback for now 17 | sys.exit(1) 18 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_capabilities.rosinstall: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # 3 | # Source installation instructions at: 4 | # 5 | # http://www.ros.org/wiki/turtlebot/Tutorials/hydro/Source%20Installation 6 | # 7 | ############################################################################## 8 | 9 | # Kobuki / Yujin stacks 10 | 11 | - git: 12 | uri: https://github.com/yujinrobot/kobuki_desktop.git 13 | local-name: kobuki_desktop 14 | version: hydro-devel 15 | 16 | - git: 17 | uri: https://github.com/yujinrobot/yujin_ocs.git 18 | local-name: yujin_ocs 19 | version: hydro-devel 20 | 21 | - git: 22 | uri: https://github.com/yujinrobot/kobuki_msgs.git 23 | local-name: kobuki_msgs 24 | version: hydro-devel 25 | 26 | - git: 27 | uri: https://github.com/yujinrobot/kobuki_core.git 28 | local-name: kobuki_core 29 | version: hydro-devel 30 | 31 | - git: 32 | uri: https://github.com/yujinrobot/kobuki.git 33 | local-name: kobuki 34 | version: capabilities_integration 35 | 36 | # Create stacks 37 | 38 | - git: 39 | uri: https://github.com/turtlebot/turtlebot_create.git 40 | local-name: turtlebot_create 41 | version: hydro-devel 42 | 43 | - git: 44 | uri: https://github.com/turtlebot/turtlebot_create_desktop.git 45 | local-name: turtlebot_create_desktop 46 | version: hydro-devel 47 | 48 | # Turtlebot stacks 49 | 50 | - git: 51 | uri: https://github.com/turtlebot/turtlebot_msgs.git 52 | local-name: turtlebot_msgs 53 | version: hydro-devel 54 | 55 | - git: 56 | uri: https://github.com/turtlebot/turtlebot.git 57 | local-name: turtlebot 58 | version: capabilities_integration 59 | 60 | - git: 61 | uri: https://github.com/turtlebot/turtlebot_simulator.git 62 | local-name: turtlebot_simulator 63 | version: hydro-devel 64 | 65 | - git: 66 | uri: https://github.com/turtlebot/turtlebot_apps.git 67 | local-name: turtlebot_apps 68 | version: capabilities_integration 69 | 70 | - git: 71 | uri: https://github.com/turtlebot/turtlebot_viz.git 72 | local-name: turtlebot_viz 73 | version: hydro-devel 74 | 75 | # ROCON stacks 76 | 77 | - git: 78 | uri: https://github.com/robotics-in-concert/rocon_app_platform.git 79 | local-name: rocon_app_platform 80 | version: hydro-devel 81 | 82 | - git: 83 | uri: https://github.com/robotics-in-concert/rocon_msgs.git 84 | local-name: rocon_msgs 85 | version: hydro-devel 86 | 87 | # ROCON forks for now, change to OSRF when stable 88 | - git: 89 | uri: https://github.com/robotics-in-concert/capabilities.git 90 | local-name: capabilities 91 | version: master 92 | 93 | - git: 94 | uri: https://github.com/robotics-in-concert/std_capabilities.git 95 | local-name: std_capabilities 96 | version: initial_specs 97 | 98 | - git: 99 | uri: https://github.com/robotics-in-concert/rqt_capabilities.git 100 | local-name: rqt_capabilities 101 | version: master 102 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_capabilities/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | turtlebot_capabilities 4 | 5 | 6 | 7 | 8 | 9 | org.python.pydev.PyDevBuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 15 | clean,full,incremental, 16 | 17 | 18 | ?name? 19 | 20 | 21 | 22 | org.eclipse.cdt.make.core.append_environment 23 | true 24 | 25 | 26 | org.eclipse.cdt.make.core.autoBuildTarget 27 | all 28 | 29 | 30 | org.eclipse.cdt.make.core.buildArguments 31 | 32 | 33 | 34 | org.eclipse.cdt.make.core.buildCommand 35 | make 36 | 37 | 38 | org.eclipse.cdt.make.core.cleanBuildTarget 39 | clean 40 | 41 | 42 | org.eclipse.cdt.make.core.contents 43 | org.eclipse.cdt.make.core.activeConfigSettings 44 | 45 | 46 | org.eclipse.cdt.make.core.enableAutoBuild 47 | false 48 | 49 | 50 | org.eclipse.cdt.make.core.enableCleanBuild 51 | true 52 | 53 | 54 | org.eclipse.cdt.make.core.enableFullBuild 55 | true 56 | 57 | 58 | org.eclipse.cdt.make.core.fullBuildTarget 59 | all 60 | 61 | 62 | org.eclipse.cdt.make.core.stopOnError 63 | true 64 | 65 | 66 | org.eclipse.cdt.make.core.useDefaultBuildCmd 67 | true 68 | 69 | 70 | 71 | 72 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 73 | full,incremental, 74 | 75 | 76 | 77 | 78 | 79 | org.eclipse.cdt.core.cnature 80 | org.eclipse.cdt.core.ccnature 81 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 82 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 83 | org.python.pydev.pythonNature 84 | 85 | 86 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_capabilities/.pydevproject: -------------------------------------------------------------------------------- 1 | 2 | 3 | Default 4 | python 2.7 5 | 6 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_capabilities/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package turtlebot_capabilities 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 2.4.2 (2016-12-22) 6 | ------------------ 7 | 8 | 2.4.1 (2016-12-22) 9 | ------------------ 10 | 11 | 2.4.0 (2016-11-01) 12 | ------------------ 13 | 14 | 2.3.12 (2016-06-27) 15 | ------------------- 16 | * Fix typo. 17 | * Contributors: Patrick Chin 18 | 19 | 2.3.11 (2015-04-15) 20 | ------------------- 21 | 22 | 2.3.10 (2015-04-02) 23 | ------------------- 24 | 25 | 2.3.9 (2015-03-30) 26 | ------------------ 27 | 28 | 2.3.8 (2015-03-23) 29 | ------------------ 30 | 31 | 2.3.7 (2015-03-02) 32 | ------------------ 33 | 34 | 2.3.6 (2015-02-27) 35 | ------------------ 36 | 37 | 2.3.5 (2015-01-12) 38 | ------------------ 39 | * bringup depend on capabilities. capabilities should not depend on bringup `#185 `_ 40 | * Contributors: Jihoon Lee 41 | 42 | 2.3.4 (2015-01-07) 43 | ------------------ 44 | 45 | 2.3.3 (2015-01-05) 46 | ------------------ 47 | 48 | 2.3.2 (2014-12-30) 49 | ------------------ 50 | 51 | 2.3.1 (2014-12-30) 52 | ------------------ 53 | 54 | 2.3.0 (2014-11-30) 55 | ------------------ 56 | * Enable capabilities server for turtlebot on indigo 57 | * adds turtlebot_capabilities package and related changes 58 | * Contributors: Marcus Liebhardt, kentsommer 59 | 60 | * Enable capabilities server for turtlebot on indigo 61 | * adds turtlebot_capabilities package and related changes 62 | * Contributors: Marcus Liebhardt, kentsommer 63 | 64 | 2.2.5 (2014-05-23) 65 | ------------------ 66 | 67 | 2.2.4 (2014-04-07) 68 | ------------------ 69 | 70 | 2.2.3 (2014-01-14) 71 | ------------------ 72 | 73 | 2.2.2 (2013-10-14) 74 | ------------------ 75 | 76 | 2.2.1 (2013-09-14) 77 | ------------------ 78 | 79 | 2.2.0 (2013-08-31) 80 | ------------------ 81 | 82 | 2.1.1 (2013-08-06) 83 | ------------------ 84 | 85 | 2.1.0 (2013-07-15) 86 | ------------------ 87 | 88 | 2.0.2 (2013-04-01) 89 | ------------------ 90 | 91 | 2.0.1 (2013-03-28) 92 | ------------------ 93 | 94 | 2.0.0 (2013-02-16) 95 | ------------------ 96 | 97 | 1.9.4 (2013-01-16) 98 | ------------------ 99 | 100 | 1.9.3 (2013-01-05) 101 | ------------------ 102 | 103 | 1.9.2 (2013-01-02) 104 | ------------------ 105 | 106 | 1.9.1 (2012-12-22) 107 | ------------------ 108 | 109 | 1.9.0 (2012-12-15) 110 | ------------------ 111 | 112 | 1.0.3 (2012-12-05) 113 | ------------------ 114 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_capabilities/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(turtlebot_capabilities) 3 | 4 | find_package(catkin REQUIRED) 5 | 6 | catkin_package() 7 | 8 | install(DIRECTORY interfaces 9 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) 10 | 11 | install(DIRECTORY providers 12 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) 13 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_capabilities/interfaces/TurtleBotBringup.yaml: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | --- 3 | name: TurtleBotBringup 4 | spec_version: 1 5 | spec_type: interface 6 | description: 'This is a placeholder capability, which aggregates functionality needed to implement other, standard capabilities for the TurtleBot' 7 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_capabilities/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | turtlebot_capabilities 4 | 2.4.2 5 | Capabilities for the TurtleBot 6 | 7 | William Woodall 8 | Marcus Liebhardt 9 | 10 | BSD 11 | 12 | http://ros.org/wiki/turtlebot_capabilities 13 | https://github.com/turtlebot/turtlebot 14 | https://github.com/turtlebot/turtlebot/issues 15 | 16 | William Woodall 17 | Marcus Liebhardt 18 | 19 | catkin 20 | 21 | capabilities 22 | std_capabilities 23 | 24 | 25 | 26 | 27 | interfaces/TurtleBotBringup.yaml 28 | 29 | 30 | providers/depthimage_to_laserscan.yaml 31 | 32 | 33 | providers/diagnostics.yaml 34 | 35 | 36 | providers/differential_mobile_base.yaml 37 | 38 | 39 | providers/rgbd_sensor.yaml 40 | 41 | 42 | providers/robot_state_publisher.yaml 43 | 44 | 45 | providers/turtlebot_bringup.yaml 46 | 47 | 48 | providers/turtlebot2_bringup.yaml 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_capabilities/providers/depthimage_to_laserscan.yaml: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | --- 3 | name: depthimage_to_laserscan 4 | spec_version: 1 5 | spec_type: provider 6 | description: 'Implements the standard LaserSensor capability for the TurtleBot by providing a fake laser scan using the depth image from the 3D sensor.' 7 | implements: std_capabilities/LaserSensor 8 | launch_file: 'launch/depthimage_to_laserscan.launch' 9 | depends_on: 10 | 'std_capabilities/RGBDSensor': 11 | provider: 'turtlebot_capabilities/kinect_rgbd_sensor' 12 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_capabilities/providers/diagnostics.yaml: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | --- 3 | name: diagnostics 4 | spec_version: 1 5 | spec_type: provider 6 | description: 'Implements the Diagnostics capability for the TurtleBot.' 7 | implements: 'std_capabilities/Diagnostics' 8 | launch_file: 'launch/diagnostics.launch' 9 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_capabilities/providers/differential_mobile_base.yaml: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | --- 3 | name: differential_mobile_base 4 | spec_version: 1 5 | spec_type: provider 6 | implements: std_capabilities/DifferentialMobileBase 7 | launch_file: 8 | depends_on: 9 | 'turtlebot_capabilities/TurtleBotBringup' 10 | #remappings: 11 | # topics: 12 | # '/cmd_vel': '/cmd_vel' 13 | # '/joint_states': '/robosem/joint_states' 14 | # '/odom': '/robosem/odom' 15 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_capabilities/providers/launch/depthimage_to_laserscan.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_capabilities/providers/launch/diagnostics.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_capabilities/providers/launch/placeholder.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from time import sleep 4 | 5 | while True: 6 | sleep(0.1) 7 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_capabilities/providers/launch/rgbd_sensor.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_capabilities/providers/launch/robot_state_publisher.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_capabilities/providers/launch/turtlebot2_bringup.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_capabilities/providers/launch/turtlebot_bringup.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_capabilities/providers/rgbd_sensor.yaml: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | --- 3 | name: rgbd_sensor 4 | spec_version: 1 5 | spec_type: provider 6 | description: 'Implements the standard RGBDSensor capability on the TurtleBot.' 7 | implements: std_capabilities/RGBDSensor 8 | launch_file: 'launch/rgbd_sensor.launch' 9 | depends_on: 10 | 'turtlebot_capabilities/TurtleBotBringup' 11 | remappings: 12 | topics: 13 | '/rgbd_sensor/rgb/camera_info': '/camera/rgb/camera_info' 14 | '/rgbd_sensor/rgb/image_raw': '/camera/rgb/image_raw' 15 | '/rgbd_sensor/rgb/image_color': '/camera/rgb/image_color' 16 | '/rgbd_sensor/rgb/image_color/compressed': '/camera/rgb/image_color/compressed' 17 | '/rgbd_sensor/depth/camera_info': '/camera/depth/camera_info' 18 | '/rgbd_sensor/depth/image_raw': '/camera/depth/image_raw' 19 | '/rgbd_sensor/depth/points': '/camera/depth/points' 20 | '/rgbd_sensor/depth_registered/points': '/camera/depth_registered/points' 21 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_capabilities/providers/robot_state_publisher.yaml: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | --- 3 | name: robot_state_publisher 4 | spec_version: 1 5 | spec_type: provider 6 | description: 'Implements the RobotStatePublisher capability for the TurtleBot.' 7 | implements: std_capabilities/RobotStatePublisher 8 | launch_file: 'launch/robot_state_publisher.launch' 9 | depends_on: 10 | 'std_capabilities/DifferentialMobileBase': 11 | provider: 'kobuki_capabilities/kobuki_differential_mobile_base' 12 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_capabilities/providers/turtlebot2_bringup.yaml: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | --- 3 | name: turtlebot2_bringup 4 | spec_version: 1 5 | spec_type: provider 6 | implements: turtlebot_capabilities/TurtleBotBringup 7 | launch_file: 'launch/turtlebot2_bringup.launch' 8 | depends_on: 9 | 'std_capabilities/Diagnostics': 10 | provider: 'turtlebot_capabilities/diagnostics' 11 | 'std_capabilities/DifferentialMobileBase': 12 | provider: 'kobuki_capabilities/kobuki_differential_mobile_base' 13 | 'std_capabilities/RobotStatePublisher': 14 | provider: 'turtlebot_capabilities/robot_state_publisher' -------------------------------------------------------------------------------- /turtlebot/turtlebot_capabilities/providers/turtlebot_bringup.yaml: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | --- 3 | name: turtlebot_bringup 4 | spec_version: 1 5 | spec_type: provider 6 | implements: turtlebot_capabilities/TurtleBotBringup 7 | launch_file: 'launch/turtlebot_bringup.launch' 8 | depends_on: 9 | 'std_capabilities/Diagnostics': 10 | provider: 'turtlebot_capabilities/diagnostics' 11 | 'std_capabilities/DifferentialMobileBase': 12 | provider: 'create_capabilities/create_differential_mobile_base' 13 | 'std_capabilities/RobotStatePublisher': 14 | provider: 'turtlebot_capabilities/robot_state_publisher' -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | turtlebot_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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | 3 | project(turtlebot_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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/sensors/0_xtion_pro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/sensors/0_xtion_pro.jpg -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/sensors/astra.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/sensors/astra.jpg -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/sensors/asus_xtion_pro_live.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/sensors/asus_xtion_pro_live.png -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/sensors/kinect.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/sensors/kinect.jpg -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/sensors/kinect.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/sensors/kinect.tga -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/sensors/r200.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/sensors/r200.jpg -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/sensors/r200_bracket.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/sensors/r200_bracket.stl -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/sensors/r200_bracket_end.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/sensors/r200_bracket_end.stl -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/sensors/xtion_pro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/sensors/xtion_pro.jpg -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/sensors/xtion_pro_camera.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/sensors/xtion_pro_camera.jpg -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/stacks/circles/68-02421-8000-RA_Turtlebot_F-F_Standoff_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/stacks/circles/68-02421-8000-RA_Turtlebot_F-F_Standoff_color.png -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/stacks/circles/68-04552-1000-RA_Turtlebot_M-F_Standoff_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/stacks/circles/68-04552-1000-RA_Turtlebot_M-F_Standoff_color.png -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/stacks/circles/68-04552-2000-RA_Turtlebot_M-F_Standoff_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/stacks/circles/68-04552-2000-RA_Turtlebot_M-F_Standoff_color.png -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/stacks/circles/68-04556-RA_Kinect_Standoff_Assy.3ds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/stacks/circles/68-04556-RA_Kinect_Standoff_Assy.3ds -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/stacks/circles/plate_0_logo.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/stacks/circles/plate_0_logo.tga -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/stacks/circles/plate_1_logo.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/stacks/circles/plate_1_logo.tga -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/stacks/circles/plate_2_logo.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/stacks/circles/plate_2_logo.tga -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/stacks/hexagons/images/1f_pole.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/stacks/hexagons/images/1f_pole.jpg -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/stacks/hexagons/images/1f_stack.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/stacks/hexagons/images/1f_stack.jpg -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/stacks/hexagons/images/2f_pole.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/stacks/hexagons/images/2f_pole.jpg -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/stacks/hexagons/images/2f_stack.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/stacks/hexagons/images/2f_stack.jpg -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/stacks/hexagons/images/3f_pole.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/stacks/hexagons/images/3f_pole.jpg -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/stacks/hexagons/images/3f_stack.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/stacks/hexagons/images/3f_stack.jpg -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/stacks/hexagons/images/3f_stack1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/stacks/hexagons/images/3f_stack1.jpg -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/stacks/hexagons/images/kinect_pole.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/stacks/hexagons/images/kinect_pole.jpg -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/meshes/stacks/hexagons/images/kinect_pole_old.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot/turtlebot_description/meshes/stacks/hexagons/images/kinect_pole_old.jpg -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/package.xml: -------------------------------------------------------------------------------- 1 | 2 | turtlebot_description 3 | 2.4.2 4 | 5 | turtlebot_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_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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/robots/create_circles_asus_xtion_pro.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/robots/create_circles_kinect.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/robots/kobuki_hexagons_astra.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/robots/kobuki_hexagons_asus_xtion_pro.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/robots/kobuki_hexagons_asus_xtion_pro_offset.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/robots/kobuki_hexagons_kinect.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/robots/kobuki_hexagons_r200.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/robots/roomba_circles_asus_xtion_pro.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/robots/roomba_circles_kinect.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_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) -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/test.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/urdf/sensors/astra.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/urdf/sensors/asus_xtion_pro_offset.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/urdf/turtlebot_common_library.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_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 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_description/urdf/turtlebot_properties.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_teleop/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package turtlebot_teleop 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 2.4.2 (2016-12-22) 6 | ------------------ 7 | * Update velocity_smoother.launch.xml to handle namespaces 8 | Changed topic remapping and nodelet manager to avoid absolute paths. In this way the velocity smoother will work even inside a namespace created with the tag . 9 | * Contributors: Luca Cristoforetti 10 | 11 | 2.4.1 (2016-12-22) 12 | ------------------ 13 | 14 | 2.4.0 (2016-11-01) 15 | ------------------ 16 | 17 | 2.3.12 (2016-06-27) 18 | ------------------- 19 | 20 | 2.3.11 (2015-04-15) 21 | ------------------- 22 | 23 | 2.3.10 (2015-04-02) 24 | ------------------- 25 | 26 | 2.3.9 (2015-03-30) 27 | ------------------ 28 | 29 | 2.3.8 (2015-03-23) 30 | ------------------ 31 | 32 | 2.3.7 (2015-03-02) 33 | ------------------ 34 | 35 | 2.3.6 (2015-02-27) 36 | ------------------ 37 | * remove turtlebot_teleop library from catkin_package call closes `#192 `_ 38 | * remove old rosbuild imports no longer necessary 39 | * Contributors: Jihoon Lee, Tully Foote 40 | 41 | 2.3.5 (2015-01-12) 42 | ------------------ 43 | * update turtlebot_teleop url closes `#188 `_ 44 | * Contributors: Jihoon Lee 45 | 46 | 2.3.4 (2015-01-07) 47 | ------------------ 48 | 49 | 2.3.3 (2015-01-05) 50 | ------------------ 51 | 52 | 2.3.2 (2014-12-30) 53 | ------------------ 54 | 55 | 2.3.1 (2014-12-30) 56 | ------------------ 57 | * add README on turtlebot_teleop to explain why it is here now fixes `#182 `_ 58 | * sync package version with others packages 59 | * turtlebot_teleop to be migrated to new base 60 | * Contributors: Jihoon Lee 61 | 62 | 2.2.4 (2013-10-14) 63 | ------------------ 64 | * Remove unnecessary dependency on cmd_vel_mux package. 65 | 66 | 2.2.3 (2013-09-27) 67 | ------------------ 68 | 69 | 2.2.2 (2013-09-26) 70 | ------------------ 71 | 72 | 2.2.1 (2013-09-23) 73 | ------------------ 74 | 75 | 2.2.0 (2013-08-30) 76 | ------------------ 77 | * Add bugtracker and repo info URLs. 78 | * Changelogs at package level. 79 | 80 | 2.1.x - hydro, unstable 81 | ======================= 82 | 83 | 2.1.1 (2013-08-09) 84 | ------------------ 85 | * Add missing include_directories to the teleop build. 86 | * Add absolute namespaces 87 | * Rename include launcher 88 | * Rationalize the use of velocity smoother: remap properly robot_cmd_vel, add comments, and avoid meaningless topic names 89 | 90 | 2.1.0 (2013-07-19) 91 | ------------------ 92 | * Catikinized 93 | * Unexsistent include dir removed from package description 94 | 95 | 96 | Previous versions, bugfixing 97 | ============================ 98 | 99 | Available in ROS wiki: http://ros.org/wiki/turtlebot_apps/ChangeList 100 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_teleop/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(turtlebot_teleop) 3 | 4 | ## Find catkin macros and libraries 5 | find_package(catkin REQUIRED COMPONENTS roscpp geometry_msgs joy) 6 | 7 | include_directories(${catkin_INCLUDE_DIRS}) 8 | 9 | catkin_package( 10 | INCLUDE_DIRS 11 | CATKIN_DEPENDS roscpp geometry_msgs joy 12 | DEPENDS 13 | ) 14 | 15 | ########### 16 | ## Build ## 17 | ########### 18 | 19 | add_executable(turtlebot_teleop_joy src/turtlebot_joy.cpp) 20 | target_link_libraries(turtlebot_teleop_joy ${catkin_LIBRARIES}) 21 | 22 | ############# 23 | ## Install ## 24 | ############# 25 | 26 | ## Mark executable scripts (Python etc.) for installation 27 | install(PROGRAMS 28 | scripts/turtlebot_teleop_key 29 | DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 30 | ) 31 | 32 | ## Mark executables and/or libraries for installation 33 | install(TARGETS turtlebot_teleop_joy 34 | RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 35 | ) 36 | 37 | ## Mark all other useful stuff for installation 38 | install(DIRECTORY launch 39 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 40 | ) 41 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_teleop/README.md: -------------------------------------------------------------------------------- 1 | turtlebot_teleop 2 | ================ 3 | 4 | Turtlebot Teleoperation implementation. 5 | This package used to be in turtlebot_apps repository. It has been temporarily migrated into turtlebot 6 | because it is useful for both robot(turtlebot_apps) side and user side pc(turtlebot_interactions). 7 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_teleop/launch/includes/velocity_smoother.launch.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_teleop/launch/keyboard_teleop.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_teleop/launch/logitech.launch: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_teleop/launch/ps3_teleop.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_teleop/launch/xbox360_teleop.launch: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_teleop/package.xml: -------------------------------------------------------------------------------- 1 | 2 | turtlebot_teleop 3 | 2.4.2 4 | Provides teleoperation using joysticks or keyboard. 5 | Melonee Wise 6 | BSD 7 | http://ros.org/wiki/turtlebot_teleop 8 | https://github.com/turtlebot/turtlebot 9 | https://github.com/turtlebot/turtlebot/issues 10 | 11 | Melonee Wise 12 | 13 | catkin 14 | 15 | roscpp 16 | geometry_msgs 17 | joy 18 | 19 | roscpp 20 | geometry_msgs 21 | joy 22 | kobuki_safety_controller 23 | yocs_velocity_smoother 24 | turtlebot_bringup 25 | 26 | -------------------------------------------------------------------------------- /turtlebot/turtlebot_teleop/param/mux.yaml: -------------------------------------------------------------------------------- 1 | # Created on: Oct 29, 2012 2 | # Author: jorge 3 | # Configuration for subscribers to cmd_vel sources for kobuki keyop operation 4 | # with safety reactive controller. 5 | # 6 | # Individual subscriber configuration: 7 | # name: Source name 8 | # topic: The topic that provides cmd_vel messages 9 | # timeout: Time in seconds without incoming messages to consider this topic inactive 10 | # priority: Priority: an UNIQUE unsigned integer from 0 (lowest) to MAX_INT 11 | # short_desc: Short description (optional) 12 | 13 | subscribers: 14 | - name: "Safe reactive controller" 15 | topic: "input/safety_controller" 16 | timeout: 0.2 17 | priority: 10 18 | - name: "Teleoperation" 19 | topic: "input/teleop" 20 | timeout: 1.0 21 | priority: 7 22 | -------------------------------------------------------------------------------- /turtlebot_simulator/.gitignore: -------------------------------------------------------------------------------- 1 | .settings 2 | bin 3 | build 4 | lib 5 | -------------------------------------------------------------------------------- /turtlebot_simulator/README.md: -------------------------------------------------------------------------------- 1 | turtlebot_simulator 2 | =================== 3 | 4 | Launchers for Gazebo simulation of the TurtleBot 5 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_gazebo/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | turtlebot_gazebo 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 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_gazebo/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package turtlebot_simulator 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 2.2.3 (2017-09-18) 6 | ------------------ 7 | * Fix changing amcl.launch.xml and gmapping.launch.xml locations under turtlebot_navigation 8 | * Contributors: Mohamed Al Zaiady, Mohamed Elzaiady, Tully Foote, mzaiady 9 | 10 | 2.2.2 (2015-09-16) 11 | ------------------ 12 | 13 | 2.2.1 (2015-08-07) 14 | ------------------ 15 | * Enable to run Gazebo w/o GUI. 16 | * Contributors: Isaac IY Saito 17 | 18 | 2.2.0 (2014-12-30) 19 | ------------------ 20 | * use env hook to configure gazebo world and map fixes `#40 `_ 21 | * now it uses args to load world. and corridor world is added. `#39 `_ 22 | * disable create gazebo plugin 23 | * Add turtlebot_navigation to turtlebot_gazebo depends 24 | gmapping_demo.launch depends on it. 25 | * Contributors: Jihoon Lee, Jochen Sprickerhof 26 | 27 | 2.1.1 (2013-10-14) 28 | ------------------ 29 | * Rename cmd_vel_mux as yocs_cmd_vel_mux. 30 | 31 | 2.1.0 (2013-08-30) 32 | ------------------ 33 | * Add navigation demos on Gazebo on a playground world. 34 | * Add bugtracker and repo info URLs. 35 | * Add cmd_vel_mux for create and roomba. 36 | * Do not use robot_pose_ekf for kobuki base. 37 | 38 | 2.0.0 (2013-07-16) 39 | ------------------ 40 | 41 | * Migrated to use stand-alone Gazebo installation 42 | * All packages have been catkinized 43 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_gazebo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(turtlebot_gazebo) 3 | find_package(catkin REQUIRED) 4 | catkin_package() 5 | 6 | catkin_add_env_hooks(25.turtlebot-gazebo SHELLS sh DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/env-hooks) 7 | 8 | install(DIRECTORY launch 9 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) 10 | 11 | install(DIRECTORY maps 12 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) 13 | 14 | install(DIRECTORY worlds 15 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) 16 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_gazebo/env-hooks/25.turtlebot-gazebo.sh.em: -------------------------------------------------------------------------------- 1 | # Set some sane defaults for the turtlebot stage launch environment 2 | ##Documentation: 3 | # The colon command simply has its arguments evaluated and then succeeds. 4 | # It is the original shell comment notation (before '#' to end of line). For a long time, Bourne shell scripts had a colon as the first character. 5 | # The C Shell would read a script and use the first character to determine whether it was for the C Shell (a '#' hash) or the Bourne shell (a ':' colon). 6 | # Then the kernel got in on the act and added support for '#!/path/to/program' and the Bourne shell got '#' comments, and the colon convention went by the wayside. 7 | # But if you come across a script that starts with a colon (Like this one), now you will know why. ~ Jonathan Leffler 8 | : ${TURTLEBOT_GAZEBO_MAP_FILE:=`rospack find turtlebot_gazebo`/maps/playground.yaml} 9 | : ${TURTLEBOT_GAZEBO_WORLD_FILE:=`rospack find turtlebot_gazebo`/worlds/playground.world} 10 | 11 | # Exports 12 | export TURTLEBOT_GAZEBO_MAP_FILE 13 | export TURTLEBOT_GAZEBO_WORLD_FILE 14 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_gazebo/launch/amcl_demo.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_gazebo/launch/gmapping_demo.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_gazebo/launch/includes/create.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_gazebo/launch/includes/kobuki.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | 13 | 14 | 15 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_gazebo/launch/includes/roomba.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_gazebo/launch/turtlebot_world.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 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_gazebo/maps/playground.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot_simulator/turtlebot_gazebo/maps/playground.pgm -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_gazebo/maps/playground.yaml: -------------------------------------------------------------------------------- 1 | free_thresh: 0.196 2 | image: playground.pgm 3 | negate: 0 4 | occupied_thresh: 0.65 5 | origin: [-6.8999999999999915, -5.8999999999999915, 0.0] 6 | resolution: 0.05 7 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_gazebo/package.xml: -------------------------------------------------------------------------------- 1 | 2 | turtlebot_gazebo 3 | 2.2.3 4 | Gazebo launchers and worlds for TurtleBot simulation 5 | Marcus Liebhardt 6 | BSD 7 | http://ros.org/wiki/turtlebot_gazebo 8 | https://github.com/turtlebot/turtlebot_simulator 9 | https://github.com/turtlebot/turtlebot_simulator/issues 10 | Willow Garage 11 | 12 | catkin 13 | 14 | yocs_cmd_vel_mux 15 | 16 | diagnostic_aggregator 17 | depthimage_to_laserscan 18 | gazebo_ros 19 | kobuki_gazebo_plugins 20 | robot_pose_ekf 21 | robot_state_publisher 22 | turtlebot_bringup 23 | turtlebot_description 24 | turtlebot_navigation 25 | xacro 26 | 27 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_gazebo/worlds/empty.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | model://sun 7 | 8 | 9 | 10 | model://ground_plane 11 | 12 | 13 | 14 | 0.01 15 | 1 16 | 100 17 | 0 0 -9.8 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_simulator.rosinstall: -------------------------------------------------------------------------------- 1 | - git: {local-name: kobuki, uri: 'https://github.com/yujinrobot/kobuki.git', version: indigo} 2 | - git: {local-name: kobuki_desktop, uri: 'https://github.com/yujinrobot/kobuki_desktop.git', version: indigo} 3 | - git: {local-name: stdr_simulator, uri: 'https://github.com/stdr-simulator-ros-pkg/stdr_simulator', version: hydro-devel} 4 | - git: {local-name: turtlebot, uri: 'https://github.com/turtlebot/turtlebot.git', version: indigo} 5 | - git: {local-name: turtlebot_create, uri: 'http://github.com/turtlebot/turtlebot_create.git', version: indigo} 6 | - git: {local-name: turtlebot_apps, uri: 'http://github.com/turtlebot/turtlebot_apps.git', version: indigo} 7 | - git: {local-name: turtlebot_msgs, uri: 'http://github.com/turtlebot/turtlebot_msgs.git', version: indigo} 8 | - git: {local-name: turtlebot_simulator, uri: 'http://github.com/turtlebot/turtlebot_simulator.git', version: indigo} 9 | - git: {local-name: turtlebot_create_desktop, uri: 'https://github.com/turtlebot/turtlebot_create_desktop.git', version: indigo} 10 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_simulator/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | turtlebot_simulator 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 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_simulator/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package turtlebot_simulator 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 2.2.3 (2017-09-18) 6 | ------------------ 7 | 8 | 2.2.2 (2015-09-16) 9 | ------------------ 10 | 11 | 2.2.1 (2015-08-07) 12 | ------------------ 13 | 14 | 2.2.0 (2014-12-30) 15 | ------------------ 16 | * add turtlebot_stdr in meta package fixes `#44 `_ 17 | * add turtlebot_stage 18 | * Contributors: Jihoon Lee 19 | 20 | 2.1.1 (2013-10-14) 21 | ------------------ 22 | 23 | 2.1.0 (2013-08-30) 24 | ------------------ 25 | * Add bugtracker and repo info URLs. 26 | 27 | 2.0.0 (2013-07-16) 28 | ------------------ 29 | 30 | * Migrated to use stand-alone Gazebo installation 31 | * All packages have been catkinized 32 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_simulator/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(turtlebot_simulator) 3 | find_package(catkin REQUIRED) 4 | catkin_metapackage() 5 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_simulator/package.xml: -------------------------------------------------------------------------------- 1 | 2 | turtlebot_simulator 3 | 2.2.3 4 | Catkin metapackage for the turtlebot_simulator stack 5 | OSRF 6 | BSD 7 | http://ros.org/wiki/turtlebot_simulator 8 | https://github.com/turtlebot/turtlebot_simulator 9 | https://github.com/turtlebot/turtlebot_simulator/issues 10 | Willow 11 | 12 | catkin 13 | turtlebot_gazebo 14 | turtlebot_stage 15 | turtlebot_stdr 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stage/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | turtlebot_stage 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | org.eclipse.cdt.core.cnature 23 | org.eclipse.cdt.core.ccnature 24 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 25 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 26 | 27 | 28 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stage/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package turtlebot_stage 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 2.2.3 (2017-09-18) 6 | ------------------ 7 | Fixed include path for turtlebot_navigation/launch/includes/amcl/amcl.launch.xml. https://github.com/turtlebot/turtlebot_apps/commit/cc2671666e8529677e6757fe78de4ff625f946e5 8 | * Contributors: Clyde McQueen 9 | 10 | 2.2.2 (2015-09-16) 11 | ------------------ 12 | * view frame is now base_link closes `#51 `_ 13 | * Contributors: Jihoon Lee 14 | 15 | 2.2.1 (2015-08-07) 16 | ------------------ 17 | * turtlebot_stage: add turtlebot_navigation dependency 18 | * Contributors: Gaël Ecorchard 19 | 20 | 2.2.0 (2014-12-30) 21 | ------------------ 22 | * Adds border extension to map to fix map scaling / position in stage 23 | * Added changes in the stage launch file undone before because of the merge 24 | * Merged 25 | * Moved env fold inside stage 26 | * Revert "Stage launch use env variables" 27 | * Small fix for wrong file name of env script 28 | * Added support for map and world file through env variables 29 | * remove annotation and param install rule 30 | * updated rviz configuration for dwa. 31 | * add the trajectory cloud to stage's rviz view. 32 | * stage only permits 'square' robots, so make sure our square fits within 33 | the turtlebot defined circle otherwise it collides when it normally 34 | wouldn't. 35 | * redirect all params and launchers at the real turtlebot configuration files and cleanup, `#21 `_. 36 | * remove unused plugins and add the cost cloud. 37 | * add turtlebot_stage 38 | * Contributors: Alexander Reimann, Daniel Stonier, Jihoon Lee 39 | 40 | * Adds border extension to map to fix map scaling / position in stage 41 | * Added changes in the stage launch file undone before because of the merge 42 | * Merged 43 | * Moved env fold inside stage 44 | * Revert "Stage launch use env variables" 45 | * Small fix for wrong file name of env script 46 | * Added support for map and world file through env variables 47 | * remove annotation and param install rule 48 | * updated rviz configuration for dwa. 49 | * add the trajectory cloud to stage's rviz view. 50 | * stage only permits 'square' robots, so make sure our square fits within 51 | the turtlebot defined circle otherwise it collides when it normally 52 | wouldn't. 53 | * redirect all params and launchers at the real turtlebot configuration files and cleanup, `#21 `_. 54 | * remove unused plugins and add the cost cloud. 55 | * add turtlebot_stage 56 | * Contributors: Alexander Reimann, Daniel Stonier, Jihoon Lee 57 | 58 | 2.1.1 (2013-10-14) 59 | ------------------ 60 | 61 | 2.1.0 (2013-09-02) 62 | ------------------ 63 | 64 | 2.0.0 (2013-08-12) 65 | ------------------ 66 | 67 | 1.9.1 (2013-01-02) 68 | ------------------ 69 | 70 | 1.9.0 (2012-12-22) 71 | ------------------ 72 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stage/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(turtlebot_stage) 3 | 4 | find_package(catkin REQUIRED) 5 | 6 | catkin_package() 7 | 8 | catkin_add_env_hooks(25.turtlebot-stage SHELLS sh DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/env-hooks) 9 | 10 | install(DIRECTORY launch 11 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 12 | ) 13 | 14 | install(DIRECTORY maps 15 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 16 | ) 17 | 18 | install(DIRECTORY rviz 19 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 20 | ) 21 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stage/env-hooks/25.turtlebot-stage.sh.em: -------------------------------------------------------------------------------- 1 | # Set some sane defaults for the turtlebot stage launch environment 2 | ##Documentation: 3 | # The colon command simply has its arguments evaluated and then succeeds. 4 | # It is the original shell comment notation (before '#' to end of line). For a long time, Bourne shell scripts had a colon as the first character. 5 | # The C Shell would read a script and use the first character to determine whether it was for the C Shell (a '#' hash) or the Bourne shell (a ':' colon). 6 | # Then the kernel got in on the act and added support for '#!/path/to/program' and the Bourne shell got '#' comments, and the colon convention went by the wayside. 7 | # But if you come across a script that starts with a colon (Like this one), now you will know why. ~ Jonathan Leffler 8 | : ${TURTLEBOT_STAGE_MAP_FILE:=`rospack find turtlebot_stage`/maps/maze.yaml} 9 | : ${TURTLEBOT_STAGE_WORLD_FILE:=`rospack find turtlebot_stage`/maps/stage/maze.world} 10 | # Exports 11 | export TURTLEBOT_STAGE_MAP_FILE 12 | export TURTLEBOT_STAGE_WORLD_FILE 13 | 14 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stage/maps/maze.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot_simulator/turtlebot_stage/maps/maze.png -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stage/maps/maze.yaml: -------------------------------------------------------------------------------- 1 | image: maze.png 2 | resolution: 0.05 3 | origin: [0.0, 0.0, 0.0] 4 | negate: 0 5 | occupied_thresh: 0.65 6 | free_thresh: 0.196 7 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stage/maps/robopark2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot_simulator/turtlebot_stage/maps/robopark2.bmp -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stage/maps/robopark_plan.yaml: -------------------------------------------------------------------------------- 1 | image: robopark2.bmp 2 | resolution: 0.014 3 | origin: [-0.6, -2.24, 0.0] #The 2-D pose of the lower-left pixel in the map, as (x, y, yaw) 4 | negate: 0 5 | occupied_thresh: 0.65 6 | free_thresh: 0.196 7 | 8 | 9 | 10 | # 2150x700 pix 11 | 12 | # 491 pix -> 13.900 m 13 | 14 | # res = 0.0283 pix/m 15 | 16 | # 1012 >>> 28.6396 17 | # 340 >>> 9.622 18 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stage/maps/stage/maze.world: -------------------------------------------------------------------------------- 1 | include "turtlebot.inc" 2 | 3 | define floorplan model 4 | ( 5 | # sombre, sensible, artistic 6 | color "gray30" 7 | 8 | # most maps will need a bounding box 9 | boundary 1 10 | 11 | gui_nose 0 12 | gui_grid 0 13 | gui_outline 0 14 | gripper_return 0 15 | fiducial_return 0 16 | laser_return 1 17 | ) 18 | 19 | resolution 0.02 20 | interval_sim 100 # simulation timestep in milliseconds 21 | 22 | window 23 | ( 24 | size [ 600.0 700.0 ] 25 | center [ 0.0 0.0 ] 26 | rotate [ 0.0 0.0 ] 27 | scale 60 28 | ) 29 | 30 | floorplan 31 | ( 32 | name "maze" 33 | bitmap "../maze.png" 34 | size [ 10.0 10.0 2.0 ] 35 | pose [ 5.0 5.0 0.0 0.0 ] 36 | ) 37 | 38 | # throw in a robot 39 | turtlebot 40 | ( 41 | pose [ 2.0 2.0 0.0 0.0 ] 42 | name "turtlebot" 43 | color "black" 44 | ) 45 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stage/maps/stage/robopark_plan.world: -------------------------------------------------------------------------------- 1 | include "turtlebot.inc" 2 | 3 | # Definition for an obstacle placed on the map. 4 | define block model 5 | ( 6 | size [0.500 0.500 1.500] 7 | gui_nose 0 8 | ) 9 | 10 | 11 | # throw in a robot 12 | turtlebot 13 | ( 14 | pose [ 2.000 2.000 0.000 0.000 ] 15 | name "turtlebot1" 16 | color "gray" 17 | gui_nose 1 18 | ) 19 | 20 | # throw in an obstacle 21 | block( pose [ 4.000 4.000 0.000 0.000 ] color "red") 22 | 23 | 24 | define floorplan model 25 | ( 26 | # sombre, sensible, artistic 27 | color "gray30" 28 | 29 | # most maps will need a bounding box 30 | boundary 1 31 | 32 | gui_nose 0 33 | gui_grid 0 34 | 35 | gui_outline 0 36 | gripper_return 0 37 | fiducial_return 0 38 | laser_return 1 39 | ) 40 | 41 | # set the resolution of the underlying raytrace model in meters 42 | resolution 0.01 43 | 44 | interval_sim 100 # simulation timestep in milliseconds 45 | 46 | window 47 | ( 48 | size [ 600 424 ] 49 | rotate [ 0.000 0.000 ] 50 | ) 51 | 52 | # load an environment bitmap 53 | floorplan 54 | ( 55 | name "Robo Park floor" 56 | bitmap "../robopark2.bmp" 57 | size [16.800 11.870 1.000] 58 | 59 | pose [ 0.000 0.000 0.000 0.000 ] 60 | #for test 61 | origin [ 7.800 3.700 0.000 0.000] # specify the position of the object's center, relative to its pose 62 | ) 63 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stage/maps/stage/turtlebot.inc: -------------------------------------------------------------------------------- 1 | define kinect ranger 2 | ( 3 | sensor 4 | ( 5 | range_max 6.5 6 | fov 58.0 7 | samples 640 8 | ) 9 | # generic model properties 10 | color "black" 11 | size [ 0.06 0.15 0.03 ] 12 | ) 13 | 14 | define turtlebot position 15 | ( 16 | pose [ 0.0 0.0 0.0 0.0 ] 17 | 18 | odom_error [0.03 0.03 999999 999999 999999 0.02] 19 | 20 | size [ 0.2552 0.2552 0.40 ] 21 | origin [ 0.0 0.0 0.0 0.0 ] 22 | gui_nose 1 23 | drive "diff" 24 | color "gray" 25 | 26 | kinect(pose [ -0.1 0.0 -0.11 0.0 ]) 27 | ) 28 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stage/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | turtlebot_stage 4 | 2.2.3 5 | 6 | Stage version of turtlebot simulation. Convenient to test 2D-navigation related stuffs 7 | 8 | 9 | Jihoon Lee 10 | Jorge Santos 11 | BSD 12 | 13 | http://wiki.ros.org/turtlebot_stage 14 | https://github.com/turtlebot/turtlebot_simulator 15 | https://github.com/turtlebot/turtlebot_simulator/issues 16 | 17 | catkin 18 | stage_ros 19 | navigation 20 | turtlebot_bringup 21 | turtlebot_navigation 22 | yocs_virtual_sensor 23 | yocs_velocity_smoother 24 | 25 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | turtlebot_stdr 4 | 5 | 6 | 7 | 8 | 9 | org.python.pydev.PyDevBuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 15 | clean,full,incremental, 16 | 17 | 18 | 19 | 20 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 21 | full,incremental, 22 | 23 | 24 | 25 | 26 | 27 | org.eclipse.cdt.core.cnature 28 | org.eclipse.cdt.core.ccnature 29 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 30 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 31 | org.python.pydev.pythonNature 32 | 33 | 34 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/.pydevproject: -------------------------------------------------------------------------------- 1 | 2 | 3 | Default 4 | python 2.7 5 | 6 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package turtlebot_stdr 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 2.2.3 (2017-09-18) 6 | ------------------ 7 | * add turtlebot_navigation as dependency and fix amcl.launch.xml include path in turtlebot_stdr 8 | * Contributors: Gérald Lelong 9 | 10 | 2.2.2 (2015-09-16) 11 | ------------------ 12 | 13 | 2.2.1 (2015-08-07) 14 | ------------------ 15 | 16 | 2.2.0 (2014-12-30) 17 | ------------------ 18 | * add installrule for tf_connector and robot directory 19 | * Use default map topic name map after changing stdr's internal map server's topic 20 | * Use only one map topic and remove unused sensors from rviz 21 | * add stdr_resources as run_depend closes `#38 `_ 22 | * correct run_depend for stdr fixes `#37 `_ 23 | * renamed new_map to rviz_map, a map with the right global frame id 24 | * Update turtlebot.yaml 25 | * Update tf_connector.py 26 | * fixed map and costmap misalignement due to wrong frame_id 27 | * fix laser scan min max height for simulation 28 | * added architecture image 29 | * deleted cache file 30 | * added env-hooks folder 31 | * add env-hooks and changed the fixed frame in rviz from map to world 32 | * Cleaned up CMakeLists.txt 33 | * removed param and amcl/movebase modified launch files 34 | * turtlebot_stdr v0.1 35 | * Contributors: Jihoon Lee, Mehdi Tlili 36 | 37 | * add installrule for tf_connector and robot directory 38 | * Use default map topic name map after changing stdr's internal map server's topic 39 | * Use only one map topic and remove unused sensors from rviz 40 | * add stdr_resources as run_depend closes `#38 `_ 41 | * correct run_depend for stdr fixes `#37 `_ 42 | * renamed new_map to rviz_map, a map with the right global frame id 43 | * Update turtlebot.yaml 44 | * Update tf_connector.py 45 | * fixed map and costmap misalignement due to wrong frame_id 46 | * fix laser scan min max height for simulation 47 | * added architecture image 48 | * deleted cache file 49 | * added env-hooks folder 50 | * add env-hooks and changed the fixed frame in rviz from map to world 51 | * Cleaned up CMakeLists.txt 52 | * removed param and amcl/movebase modified launch files 53 | * turtlebot_stdr v0.1 54 | * Contributors: Jihoon Lee, Mehdi Tlili 55 | 56 | 2.1.1 (2013-10-14) 57 | ------------------ 58 | 59 | 2.1.0 (2013-09-02) 60 | ------------------ 61 | 62 | 2.0.0 (2013-08-12) 63 | ------------------ 64 | 65 | 1.9.1 (2013-01-02) 66 | ------------------ 67 | 68 | 1.9.0 (2012-12-22) 69 | ------------------ 70 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(turtlebot_stdr) 3 | 4 | find_package(catkin REQUIRED) 5 | 6 | catkin_package() 7 | 8 | catkin_add_env_hooks(25.turtlebot-stdr SHELLS sh DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/env-hooks) 9 | 10 | install(DIRECTORY launch 11 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 12 | ) 13 | 14 | install(DIRECTORY maps 15 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 16 | ) 17 | 18 | install(DIRECTORY rviz 19 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 20 | ) 21 | 22 | install(DIRECTORY robot 23 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 24 | ) 25 | 26 | install( 27 | PROGRAMS 28 | nodes/tf_connector.py 29 | DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 30 | ) 31 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/documentation/architecture_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot_simulator/turtlebot_stdr/documentation/architecture_overview.png -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/env-hooks/25.turtlebot-stdr.sh.em: -------------------------------------------------------------------------------- 1 | # Set some sane defaults for the turtlebot stdr launch environment 2 | ##Documentation: 3 | # The colon command simply has its arguments evaluated and then succeeds. 4 | # It is the original shell comment notation (before '#' to end of line). For a long time, Bourne shell scripts had a colon as the first character. 5 | # The C Shell would read a script and use the first character to determine whether it was for the C Shell (a '#' hash) or the Bourne shell (a ':' colon). 6 | # Then the kernel got in on the act and added support for '#!/path/to/program' and the Bourne shell got '#' comments, and the colon convention went by the wayside. 7 | # But if you come across a script that starts with a colon (Like this one), now you will know why. ~ Jonathan Leffler 8 | : ${TURTLEBOT_STDR_MAP_FILE:=`rospack find turtlebot_stdr`/maps/sparse_obstacles.yaml} 9 | # Exports 10 | export TURTLEBOT_STDR_MAP_FILE 11 | 12 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/launch/includes/relays.launch.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/maps/frieburg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot_simulator/turtlebot_stdr/maps/frieburg.png -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/maps/frieburg.yaml: -------------------------------------------------------------------------------- 1 | image: frieburg.png 2 | resolution: 0.05 3 | origin: [0.0, 0.0, 0.0] 4 | occupied_thresh: 0.6 5 | free_thresh: 0.3 6 | negate: 0 7 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/maps/hospital_section.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot_simulator/turtlebot_stdr/maps/hospital_section.png -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/maps/hospital_section.yaml: -------------------------------------------------------------------------------- 1 | image: hospital_section.png 2 | resolution: 0.05 3 | origin: [0.0, 0.0, 0.0] 4 | occupied_thresh: 0.6 5 | free_thresh: 0.3 6 | negate: 0 7 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/maps/mines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot_simulator/turtlebot_stdr/maps/mines.png -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/maps/mines.yaml: -------------------------------------------------------------------------------- 1 | image: mines.png 2 | resolution: 0.05 3 | origin: [0.0, 0.0, 0.0] 4 | occupied_thresh: 0.6 5 | free_thresh: 0.3 6 | negate: 0 7 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/maps/robocup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot_simulator/turtlebot_stdr/maps/robocup.png -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/maps/robocup.yaml: -------------------------------------------------------------------------------- 1 | image: robocup.png 2 | resolution: 0.03 3 | origin: [0.0, 0.0, 0.0] 4 | occupied_thresh: 0.6 5 | free_thresh: 0.3 6 | negate: 0 7 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/maps/simple_rooms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot_simulator/turtlebot_stdr/maps/simple_rooms.png -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/maps/simple_rooms.yaml: -------------------------------------------------------------------------------- 1 | image: simple_rooms.png 2 | resolution: 0.05 3 | origin: [0.0, 0.0, 0.0] 4 | occupied_thresh: 0.6 5 | free_thresh: 0.3 6 | negate: 0 7 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/maps/sparse_obstacles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udacity/RoboND-EKFLab/1acbf192d5e8bca11b3082d5b882030d63007dd5/turtlebot_simulator/turtlebot_stdr/maps/sparse_obstacles.png -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/maps/sparse_obstacles.yaml: -------------------------------------------------------------------------------- 1 | image: sparse_obstacles.png 2 | resolution: 0.02 3 | origin: [0.0, 0.0, 0.0] 4 | occupied_thresh: 0.6 5 | free_thresh: 0.3 6 | negate: 0 7 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/nodes/tf_connector.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | __author__ = 'mehdi tlili' 3 | import rospy 4 | from tf2_msgs.msg import TFMessage 5 | import tf 6 | 7 | class Remapper(object): 8 | 9 | def __init__(self): 10 | self.br = tf.TransformBroadcaster() 11 | rospy.Subscriber("/tf", TFMessage, self.tf_remapper) 12 | 13 | def tf_remapper(self, msg): 14 | 15 | if msg.transforms[0].header.frame_id == "/robot0": 16 | self.br.sendTransform((0, 0, 0), 17 | tf.transformations.quaternion_from_euler(0, 0, 0), 18 | rospy.Time.now(), 19 | "base_footprint", 20 | "robot0") 21 | 22 | 23 | if __name__ == '__main__': 24 | rospy.init_node('remapper_nav') 25 | remapper = Remapper() 26 | rospy.spin() 27 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | turtlebot_stdr 4 | 2.2.3 5 | 6 | Stdr version of turtlebot simulation. Convenient to test 2D-navigation related stuffs 7 | 8 | 9 | Mehdi Tlili 10 | Mehdi Tlili 11 | BSD 12 | 13 | http://wiki.ros.org/turtlebot_stdr 14 | https://github.com/turtlebot/turtlebot_simulator 15 | https://github.com/turtlebot/turtlebot_simulator/issues 16 | 17 | catkin 18 | stdr_gui 19 | stdr_robot 20 | stdr_server 21 | stdr_resources 22 | navigation 23 | turtlebot_bringup 24 | turtlebot_navigation 25 | yocs_virtual_sensor 26 | yocs_velocity_smoother 27 | 28 | -------------------------------------------------------------------------------- /turtlebot_simulator/turtlebot_stdr/robot/turtlebot.yaml: -------------------------------------------------------------------------------- 1 | robot: 2 | robot_specifications: 3 | - footprint: 4 | footprint_specifications: 5 | radius: 0.2552 6 | points: 7 | [] 8 | - initial_pose: 9 | x: 2.0 10 | y: 2.0 11 | theta: 0.0 12 | - laser: 13 | laser_specifications: 14 | max_angle: 0.5 15 | min_angle: -0.5 16 | max_range: 5 17 | min_range: 0 18 | num_rays: 640 19 | frequency: 15 20 | frame_id: laser_0 21 | pose: 22 | x: -0.1 23 | y: 0 24 | theta: 0 25 | noise: 26 | noise_specifications: 27 | noise_mean: 0.001 28 | noise_std: 0.00001 29 | 30 | --------------------------------------------------------------------------------