Skip to content

Creating a robot simulation environment with ROS and Gazebo

License

Notifications You must be signed in to change notification settings

anthonyjclark/adabot

Repository files navigation

Build Status

adabot

This is a stack for the adabot robot. Below are instructions for setting up the adabot workspace; they assume that you have correctly setup your development environment. Visit the adabot wiki for more detailed instructions.

mkdir -p ~/.ros_repos/
cd ~/.ros_repos/
hub clone anthony-jclark/adabot.git
hub fork
mkdir -p ~/ros_workspaces/adabot_ws/src/
ln -s ~/.ros_repos/adabot ~/ros_workspaces/adabot_ws/src/
cd ~/ros_workspaces/adabot_ws/
catkin init
catkin config --profile debug -x _debug --cmake-args -DCMAKE_BUILD_TYPE=Debug
catkin config --profile release -x _release --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin profile set debug
catkin build

TODO

  • add packages for physical device

  • add script for the simple startup

  • change name of components

    • weg --> ? (leg, extender, ...)
  • fix CI to use custom docker file

  • figure out why "<--" doesn't work in xacro files (in comments)

  • consider making adabot a macro so that more than one can be imported

  • -z argument for urdf_spawner in the gazebo launch file

  • checkout Gazebo's skid steer plugin

  • generate the control yaml file depending on the number of wegs per wheel

  • wegs

    • tune PID values
    • tune effort values
    • velocity values
  • wheels

    • add option to display wheel as cylinder instead of sphere
  • all links

    • select friction model
    • adjust inertia tensor independent of mass (for jitter)
    • mu1, mu2, fdir1, kp, kd
  • all joints

    • adjust limits, velocity, and effort
    • stopCfm, stopErp, implicitSpringDamper, cfmDamping, fudgeFactor
  • run script from launch file to create control yaml and control launch files

  • collision vs inertia vs visual geometries

  • inertia macros for different primitives

  • dynamic reconfigure to tune PID

  • jitter due to high joint forces for low masses

  • look at wheel control

  • get joint outputs

  • starting with a simple process of detecting slippage

  • frequencies of sensor and actuator nodes

  • node params (n.getParam)

  • average /adabot/odom/filtered/twist/twist/linear/x

rqt_plot /adabot/odom/filtered/twist/twist/linear/x /adabot/odometry/twist/twist/linear/x

show how to manually tweak PID values

normalize number of spaces in launch files, etc.

find a better way to implement variable numbers of motors (for wegs)

apt-file search "" search installed packages for owner of a file apt-cache search "" grep on package descriptions dpkg -S "" similar to apt-file but works with ROS (without contents file) apt-cache policy "" display installed version and available versions

rostopic hz and bw to test publish rate and bandwidth

controller tuning:

http://wiki.ros.org/UnitTesting http://gazebosim.org/tutorials?tut=contrib_code&cat=development#WriteTests

reset:

  • can't call rosservice call /gazebo/reset_simulation
    • this call causes all ROS nodes to stop updating for some time??
  • call rosservice call /gazebo/reset_world
  • call
rosservice call /set_pose "pose:
    header:
        seq: 0
        stamp: now
        frame_id: odom
    pose:
        pose:
            position: {x: 0.0, y: 0.0, z: 0.0}
            orientation: {x: 0.0, y: 0.0, z: 0.0, w: 1.0}
        covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]"
  • call similar service on other nodes (create services for my nodes)
  • set weg extensions to 0
  • set wheel speed to 0

weg extension based on all wheels check for bad simulation (timeout)

teleop

find a better way to implement variable numbers of motors (for wegs)

  • add undriven differential wheels for odometry

  • add channel to outside of wheels (for rubber bands)

  • offset wegs so that they do not touch each other

  • wrap config yaml and control spawner in group namespace

About

Creating a robot simulation environment with ROS and Gazebo

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published