Giter Site home page Giter Site logo

ros2_control_solo's Introduction

ROS2_CONTROL SOLO 12

Overview

This repository simulates a quadruped robot, SOLO 12, in the Gazebo simulator. Furthermore, this repository relies only on the effort interface from ROS2_control.

Installations

We use ROS 2 Foxy. Here are the dependencies used.

  • ros2-control
  • ros2-controllers
  • ros-foxy-gazebo-ros-pkgs
  • ros-foxy-xacro
  • ros-foxy-gazebo-ros2-control
  • ros-foxy-realtime-tools
  • ros-foxy-angles
  • odri-control-interface and master-board directories from this link. These packages and the ones listed below should go in the src folder of your workspace.
    • The instructions for getting those packages are available in the README.md file from the link above. Once you compile and obtain them, you can create a symbolic link to the src folder of your current workspace (e.g., for odri-control-interface, ln -s path-to-odri-control-interface-package path-to-your-workspace-src-folder)
  • mpi_cmake_modules from here
  • pybind11 from here
  • eigenpy from here
  • doxygen

You can also run rosdep install --from-paths src --ignore-src -r -y to install everything in one command, but it might miss a dependency (as I might not have listed all dependencies). Once the dependencies are installed, build the workspace with colcon build --symlink-install. Note that if building the workspace consumes too much memory, you can try instead MAKEFLAGS="-j1 -l1" colcon build --symlink-install --executor sequential. Finally, if this is your first time building the workspace, it might throw an error about a package not found. If so, source your workspace (i.e., source install/setup.bash) and try again.

Running the simulation

The following commands simulate SOLO in Gazebo. Note that before running the simulation, in the package ros2_description_solo, on line 1031 of the file urdf/solo12_simulation.sdf, please write your absolute path to the file src/ros2_control_solo_bringup/config/solo_gazebo_test_controllers.yaml (in the ros2_control_solo_bringup package) (as I have not figured out how to dynamically determine the absolute path of a file in an SDF file).

  1. Source ROS2 foxy and source your install file in the workspace
  2. source /usr/share/gazebo/setup.sh (since some Gazebo environment variables will be overridden)
  3. In your workspace directory, ros2 launch ros2_control_solo_bringup solo_system_effort_only_gazebo.launch.py launches the Gazebo simulation with SOLO.

Repository Description

models: stores the world files and model files used by the world files.

  • a plugin was added to the default empty.world from ROS 2, so the current position and orientation of SOLO could be read from Gazebo.

ros2_control_solo_bringup: composed of launch files and yaml files storing parameters. Relevant files are:

  • solo_system_effort_only_gazebo.launch.py launches Gazebo to simulate the robot.
  • In the config folder, solo_gazebo_test_controllers.yaml is called by solo12.urdf.xacro and solo12_simulation.sdf in the ros2_description_solo package. It contains parameters used by ros2_control.

ros2_description_solo: contains the description and meshes files for SOLO 12.

  • the 2 folders in use are meshes and urdf
  • In the urdf subdirectory, solo12_simulation.sdf is manually generated from solo12.urdf.xacro. This SDF file is used to spawn SOLO in Gazebo. The SDF file has contact and friction properties that the xacro/URDF file cannot specify. These parameters were manually added.

Notes

  • package.xml and README.md files for individual packages need to be updated.

ros2_control_solo's People

Contributors

olivier-stasse avatar swuuu avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.