# champ [![Build Status](https://travis-ci.org/chvmp/champ.svg?branch=master)](https://travis-ci.org/chvmp/champ)
ROS Packages for CHAMP Quadruped Controller.
![champ](https://raw.githubusercontent.com/chvmp/champ/master/docs/images/robots.gif)
CHAMP is an open source development framework for building new quadrupedal robots and developing new control algorithms. The control framework is based on [*"Hierarchical controller for highly dynamic locomotion utilizing pattern modulation and impedance control : implementation on the MIT Cheetah robot"*](https://dspace.mit.edu/handle/1721.1/85490).
Core Features:
- Fully Autonomous (using ROS navigation Stack).
- [Setup-assistant](https://github.com/chvmp/champ_setup_assistant) to configure newly built robots.
- Collection of pre-configured [URDFs](https://github.com/chvmp/robots) like Anymal, MIT Mini Cheetah, Boston Dynamic's LittleDog, and SpotMicroAi.
- Gazebo simulation environment.
- Demo robot built using accessible components so you can build it from home.
- Demo Applications like [TOWR](https://github.com/ethz-adrl/towr) and [chicken head](https://github.com/chvmp/chicken_head) stabilization.
- Lightweight C++ header-only [library](https://github.com/chvmp/libchamp) that can run on both SBC and micro-controllers.
Supported Hardware:
LIDAR:
- XV11 Lidar
- RPLidar
- YDLIDAR X4
- Hokuyo (SCIP 2.2 Compliant)
IMU:
- BNO080
SBC:
- Nvidia Jetson Nano
This should also work on Single Board Computers that support Ubuntu 16/18 capable of running ROS Navigation Stack.
ACTUATORS:
- Digital Servos
- Dynamixel AX12
- Odrive Driven Brushless Motors - WIP
TESTED ON:
- Ubuntu 16.04 (ROS Kinetic)
- Ubuntu 18.04 (ROS Melodic)
## 1. Installation
1.1. Clone and install all dependencies:
sudo apt install -y python-rosdep
cd <your_ws>/src
git clone https://github.com/chvmp/champ
git clone https://github.com/chvmp/champ_teleop
cd ..
rosdep install --from-paths src --ignore-src -r -y
1.2. Build your workspace:
cd <your_ws>
catkin_make
source <your_ws/>/devel/setup.bash
## 2. Quick Start
You don't need a physical robot to run the following demos. If you're building a physical robot, you can find out more how to configure and run a new robot in step 3.
### 2.1. Walking demo in RVIZ:
2.1.1. Run the base driver:
roslaunch champ_config bringup.launch rviz:=true
2.1.2. Run the teleop node:
roslaunch champ_teleop teleop.launch
If you want to use a [joystick](https://www.logitechg.com/en-hk/products/gamepads/f710-wireless-gamepad.html) add joy:=true as an argument.
### 2.2. SLAM demo:
2.2.1. Run the Gazebo environment:
roslaunch champ_config gazebo.launch
2.2.2. Run gmapping package and move_base:
roslaunch champ_config slam.launch rviz:=true
To start mapping:
- Click '2D Nav Goal'.
- Click and drag at the position you want the robot to go.
![champ](https://raw.githubusercontent.com/chvmp/champ/master/docs/images/slam.gif)
- Save the map by running:
roscd champ_config/maps
rosrun map_server map_saver
### 2.3. Autonomous Navigation:
2.3.1. Run the Gazebo environment:
roslaunch champ_config gazebo.launch
2.3.2. Run amcl and move_base:
roslaunch champ_config navigate.launch rviz:=true
To navigate:
- Click '2D Nav Goal'.
- Click and drag at the position you want the robot to go.
![champ](https://raw.githubusercontent.com/chvmp/champ/master/docs/images/navigation.gif)
## 3. Running your own robot:
TODO:
- Hardware Documentation
- Microcontroller based configuration
### 3.1. Generate robot configuration
- First generate a configuration package using [champ_setup_assistant](https://github.com/chvmp/champ_setup_assistant). Follow the instructions in the README to configure your own robot. The generated package contains:
- URDF path to your robot.
- Joints and Links map to help the controller know the semantics of the robot.
- Gait parameters.
- Hardware Drivers.
- Navigation parameters (move_base, amcl and gmapping).
- Microcontroller header files for gait and lightweight robot description. This only applies to robot builds that use microcontroller to run the quadruped controller.
As a reference, you can check out the collection of robots that have been pre-configured [here](https://github.com/chvmp/robots). In the list are some of the popular quadruped robots like Anymal, MIT Mini Cheetah, Boston Dynamic's LittleDog, and SpotMicroAI. Feel free to download the configuration packages in your catkin workspaces 'src' directory to try.
- Next, build your workspace so your newly generated package can be found:
cd <your_ws>
catkin_make
### 3.2.Base Driver:
This will run the quadruped controller and all sensor/hardware drivers:
roslaunch <myrobot_config> bringup.launch
Available Parameters:
- **rviz** - Launch together with RVIZ. Default: false
- **has_imu**- Set this to true if the robot has no IMU. This is useful when you want to view your newly configured robot. Basically, this tells the robot to use the pose commands from [champ_teleop](https://github.com/chvmp/champ_teleop) as the current pose of the robot. Take note that this is only useful for debugging the robot. It is recommended to place an IMU on a physical robot. Default: true.
- **lite** - Always set this to true if you're using a microcontroller to run the algorithms. Default false.
Example Usage:
View your newly configured robot:
roslaunch <myrobot_config> bringup.launch rviz:true
Run real robot with a microcontroller:
roslaunch <myrobot_config> bringup.launch lite:=true
### 3.3. Creating a map:
The base driver described in 3.2 must be running to run gmapping and move_base.
Run gmapping package and move_base:
roslaunch <myrobot_config> slam.launch
To open RVIZ and view the map:
roscd champ_navigation/rviz
rviz -d navigate.rviz
To start mapping:
- Click '2D Nav Goal'.
- Click and drag at the position you want the robot to go.
![champ](https://raw.githubusercontent.com/chvmp/champ/master/docs/images/slam.gif)
- Save the map by running:
roscd <myrobot_config>/maps
rosrun map_server map_saver
### 3.4. Autonomous Navigation:
The base driver described in 3.2 must be running to run amcl and move_base.
Run amcl and move_base:
roslaunch <myrobot_config> navigate.launch
To open RVIZ and view the map:
roscd champ_navigation/rviz
rviz -d navigate.rviz
To navigate:
- Click '2D Nav Goal'.
- Click and drag at the position you want the robot to go.
![champ](https://raw.githubusercontent.com/chvmp/champ/master/docs/images/navigation.gif)
### 3.5 Running your robot in Gazebo
Run Gazebo and the base driver in simulation mode:
roslaunch <myrobot_config> gazebo.launch
* Take note that in order for this to work, the URDF has to be Gazebo compatible and has [ros_control](http://gazebosim.org/tutorials/?tut=ros_control) capability. The controllers have been set-up so all you need is to add the transmission of the actuators. You also need to get the physics parameters right like your mass, inertia, and foot friction.
Some useful resources on getting these parameters right:
- Inertial Calculation - https://github.com/tu-darmstadt-ros-pkg/hector_models/blob/indigo-devel/hector_xacro_tools/urdf/inertia_tensors.urdf.xacro
- List of Moment of Inertia - https://en.wikipedia.org/wiki/List_of_moments_of_inertia
- Gazebo inertial parameters - http://gazebosim.org/tutorials?tut=inertia&cat=build_robot#Overview
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
四足机器狗ros仿真代码 (320个子文件)
036000ff04828a374f9cfbb401e12aa071289b 445B
04ffa4778d0fb9d9e0f82f57eb902dc76fae34 485B
101d79d6a79ddc3954f25c523fbd9b7f36c929 58B
16545215e9d941d9a77880dc8bf0a83d3fa21e 2KB
199347a802299f6b490480a534dbef8621a65e 517B
1d798d2d131a2a3399dc46bf477078c760fe2f 2KB
1e97a1e294e729b4999a4aa834fcb30fcaebe3 72B
219013944d12fc89877ad35cf1e7292d99868a 194B
2193a65f3bf91b920f7e3a4ce4ec793eab9e9c 56B
2c1aff41595b70d7046d7c67dcbd2c5342a510 518B
3676500a0ef2e98fdfe0274bcd8c3aada68f99 203B
3f687e132ce4694f9f131f79f1f8b18a382d3d 400B
4101740921e4514fafa3a16ffac20a641bd415 58B
429e2dc1aeb2085cf30f7d116e615fb4511ed4 189B
43382b5736d9b613f801bdd6c34955ed165069 204B
4d1966a912ec9d00ab0bd7305af180d1ac2af1 1KB
507fdb3c175f94d80fbbea53543316052a1dfe 168B
50b007ed5243e07a4710b22b5c11445cab0f9a 184B
50cc4e8e20e24243c9370064fd391216480e36 74B
540ac71e6881d3ba159458b467a934c311893a 204B
543252d994ef19117c571051850fcc91a16866 192B
5497a6ba8da23d19621bcd6f7b512e23fbad6f 203B
6b07b424329be3fc9b2ad2fb6ee48a477ee24d 181B
6d3cb41d2575b99b78144e930ee4463872760c 5KB
6da0a8f5966c881f241c165cf398e1bcf3eb99 74B
6fa88b2d017c3a6e987ec5daf8e0981041eb86 55B
72e86b81b1b00979ce7f4f9bdf6d924af2ee37 895B
74e0c494386eb5bf406ddf4d6e745a2d091ab3 357B
75572b4799bff24d74471468db3d80a5c3223f 58B
7663d5abeea1640d4d7989dbbf98d5800f707c 2KB
771b3d688a98f5a6693ba00371d71a4d650280 203B
7d0cf1eb60f4ff185ec46223ff0616b444f0ed 162B
838192dd2bdd5d0b65ac5edba878f3940f330d 152B
8c1f94a041f3242e87fcde5a70eac46a1c16fe 66B
8ef294d7c7323c98286344979b8d2ebd926d13 164B
8f3526e044aa8ce795d7e87954259cc0dd295f 204B
92bad57db3a4f8743d358fc686fa3f3ea13f40 65B
92efc1eef0407828e00786cf98e44db3de440d 31B
935d5b67aa2413c6fe9ea1a9008bca6c65a21c 443B
96291839879148f1946e52d0faf677f463094f 1KB
97bc47ab3cda0c6f998325bb35031f621bfe6f 129B
997b0f015d30c3d9041c830234409965b5a494 1KB
a84c827f9adc6eb6fbd29a2d2fcdcf6aea25fe 152B
abe4c1e822d1ce8526cf33e73a3d1e3116dd6c 5KB
ad8206875a9b840cba1dbef16e93e4ec859d0c 484B
b5a74c27895059c7e571e9846a1cefcf00227a 556B
b5ceac51524be656d59ed339bc055fafd78e18 172B
ba5fbd156ecb2b997cec45bf4c73397b8d304e 298B
setup.bash 167B
bf2fdc44aadfc96d991c310d36d1fcafb3a6d9 177B
c7455092e3590ea5d8bee46aa5a1fa826f465c 129B
c836024f5ab27b9fa73fcdeac43482b149f67e 207B
cb314b278d838bb02815a5927a130338fbb052 227B
cc211ecc5ce4185233ccb80a854ad392513380 264B
cca037b33037ebc3232e6b63f3f00283463a4e 192B
ccaac35414a45aa3a65b318c3b7ffb93152254 426B
params.cfg 735B
config 272B
config 262B
config 258B
config 255B
velocity_smoother_nodelet.cpp 14KB
quadruped_controller.cpp 13KB
message_relay.cpp 13KB
quadruped_controller_node.cpp 2KB
message_relay_node.cpp 2KB
.cproject 6KB
d4e7b726f0b0ce8e1e0fc8ba58c020bc8b34ae 73B
d7d5586bb64ee753423b752eef0d58e316c1bb 391B
description 73B
description 73B
description 73B
description 73B
e1e2377ed220fbf31b51e88c49764997c4ebe6 2KB
e28513a7818899b2558e0465f0bfd6172369c0 219B
e7fde299697d4da55668a11c195163e7791003 60B
edbdb0054afb7b3c992ba5791a684438e24e49 518B
ee7c3cbac37fe731159e9e4770a50dc29098b3 204B
eee2c7f05f0f19c9f8715ff1b6f08867527714 190B
effce0462e1ad426f13bfc785b3ea2d3fb5674 167B
exclude 240B
exclude 240B
exclude 240B
exclude 240B
f8e68d4ff0884542abc6814e4ac752dd9a881f 177B
fa99f51f4f8053d5cbdab37af8e3dd228ac2fe 186B
fb282319e42fc98fde9f749b607bfd9c4b9e4d 171B
gen_urdf 78B
robots.gif 3.73MB
slam.gif 3.45MB
navigation.gif 3.16MB
.gitignore 16B
.gitignore 15B
basic_linear_algebra.h 23KB
geometry.h 10KB
memory_delegate.h 9KB
kinematics.h 8KB
quadruped_leg.h 7KB
leg_controller.h 7KB
trajectory_planner.h 6KB
共 320 条
- 1
- 2
- 3
- 4
资源评论
Travis.X
- 粉丝: 1416
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功