Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Model submission for BOSDYN_SPOT and two sensor configs of CTU-CRAS-Norlab #841

Merged
merged 32 commits into from
Apr 16, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
d02c4f9
Spot: First version, has actuators, but no control.
peci1 Feb 24, 2021
1e5aae4
Merge branch 'master' into spot
peci1 Mar 20, 2021
1c44fc3
Merge remote-tracking branch 'origin/master' into spot
peci1 Mar 22, 2021
14614b2
Spot walking.
peci1 Mar 27, 2021
fb72a75
Spot: improved modularity and made CCN_SPOT_SC1 compatible with BOSDY…
peci1 Mar 27, 2021
1f10f1b
Spot: Added cameras.
peci1 Mar 28, 2021
9f5fc30
Spot: Fixed a bug in handling leg collisions.
peci1 Mar 28, 2021
6b6a1f3
Spot: specifications.md
peci1 Mar 28, 2021
43972c6
Spot: Fixed xacro utils to be compatible with MARV.
peci1 Mar 28, 2021
fcfc086
Spot: Mono camera now also relays set_rate requests.
peci1 Mar 28, 2021
03fa5a5
Spot: Fixed IMU bridge.
peci1 Mar 28, 2021
f32b295
Spot: Added payload to CCN_SPOT_SC1.
peci1 Mar 28, 2021
1504880
CCN_SPOT_SC1: Removed the total_mass_* helper link from URDF to avoid…
peci1 Mar 28, 2021
0fec18d
Spot: Added CTU_CRAS_NORLAB_SPOT_SENSOR_CONFIG_2.
peci1 Mar 28, 2021
327d453
CCN_SPOT_SC1: Added specifications.md.
peci1 Mar 28, 2021
11823f8
Spot: Added thumbnails.
peci1 Mar 28, 2021
988cc4a
CCN_SPOT_SC1: Added thumbnails.
peci1 Mar 28, 2021
2aafa88
Spot: Added mapping server bridge.
peci1 Mar 29, 2021
a495ee2
Merge branch 'master' into spot
peci1 Mar 31, 2021
4cae0be
Spot: Downgraded model.sdf to SDF 1.6.
peci1 Apr 4, 2021
540a74e
Merge branch 'master' into spot
peci1 Apr 4, 2021
034b800
Merge branch 'master' into spot
peci1 Apr 10, 2021
2c0ef7c
Spot: update IMU params.
peci1 Apr 10, 2021
4fda228
Spot: Add camera intrinsics.
peci1 Apr 10, 2021
e8078cc
Spot: Fixed specifications.md part about contact system.
peci1 Apr 10, 2021
0ec94ea
Spot: Fixed mass by adding battery and tuned the PIDs a bit.
peci1 Apr 10, 2021
fa42112
Spot: Battery life set to 60 minutes.
peci1 Apr 10, 2021
72aea85
CCN_SPOT: Changed Ouster resolution and stddev to 0.01.
peci1 Apr 10, 2021
b3fb673
Spot: removed unintentional change.
peci1 Apr 10, 2021
e0a413b
Spot: Improvements of specifications.md.
peci1 Apr 10, 2021
74adfbb
Spot: Adjusted battery life to 60 minutes.
peci1 Apr 12, 2021
1f04768
Spot: Resolved relative references to Fuel parts.
peci1 Apr 15, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions submitted_models/bosdyn_spot/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
model.sdf.urdf
91 changes: 91 additions & 0 deletions submitted_models/bosdyn_spot/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
cmake_minimum_required(VERSION 3.10.0)
project(bosdyn_spot)

set(CMAKE_CXX_STANDARD 17)

set(IGN_GAZEBO_VER 4)
find_package(ignition-gazebo${IGN_GAZEBO_VER} REQUIRED)

set(DEPS control_toolbox dynamic_reconfigure ros_ign_bridge nodelet roscpp)
set(MSG_DEPS std_msgs geometry_msgs)

find_package(catkin REQUIRED COMPONENTS ${DEPS} ${MSG_DEPS} message_generation)

add_message_files(FILES Contact.msg ContactsStamped.msg LogicalContact.msg)
generate_messages(DEPENDENCIES ${MSG_DEPS})

catkin_package(CATKIN_DEPENDS ${DEPS} ${MSG_DEPS} message_runtime)

add_library(multi-joint-command-system src/multi_joint_command.cpp)
target_link_libraries(multi-joint-command-system
PRIVATE ignition-gazebo${IGN_GAZEBO_VER}::core
)

add_library(foot_contact_bridge src/foot_contact_bridge.cpp)
target_include_directories(foot_contact_bridge PUBLIC ${catkin_INCLUDE_DIRS})
target_link_libraries(foot_contact_bridge
PUBLIC ignition-gazebo${IGN_GAZEBO_VER}::core ${catkin_LIBRARIES}
)
add_dependencies(foot_contact_bridge ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

add_library(logical_contact_bridge src/logical_contact_bridge.cpp)
target_include_directories(logical_contact_bridge PUBLIC ${catkin_INCLUDE_DIRS})
target_link_libraries(logical_contact_bridge
PUBLIC ignition-gazebo${IGN_GAZEBO_VER}::core ${catkin_LIBRARIES}
)
add_dependencies(logical_contact_bridge ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

add_library(logical-contact-system src/logical_contact_system.cpp)
target_link_libraries(logical-contact-system
PRIVATE ignition-gazebo${IGN_GAZEBO_VER}::core
)

add_library(pid_control_bridge src/pid_control_bridge.cpp)
target_include_directories(pid_control_bridge PUBLIC ${catkin_INCLUDE_DIRS})
target_link_libraries(pid_control_bridge
PUBLIC ignition-gazebo${IGN_GAZEBO_VER}::core ${catkin_LIBRARIES}
)
add_dependencies(pid_control_bridge ${catkin_EXPORTED_TARGETS})

add_library(joint_trajectory_bridge src/joint_trajectory_bridge.cpp)
target_include_directories(joint_trajectory_bridge PUBLIC ${catkin_INCLUDE_DIRS})
target_link_libraries(joint_trajectory_bridge
PUBLIC ignition-gazebo${IGN_GAZEBO_VER}::core ${catkin_LIBRARIES}
)
add_dependencies(joint_trajectory_bridge ${catkin_EXPORTED_TARGETS})

add_library(configurable-joint-position-controller-system src/configurable_joint_position_controller.cpp)
target_link_libraries(configurable-joint-position-controller-system
PRIVATE ignition-gazebo${IGN_GAZEBO_VER}::core
)

add_library(mono-camera-system src/mono_camera_system.cpp)
target_link_libraries(mono-camera-system
PRIVATE ignition-gazebo${IGN_GAZEBO_VER}::core
)

install(TARGETS
configurable-joint-position-controller-system
joint_trajectory_bridge
multi-joint-command-system
pid_control_bridge
foot_contact_bridge
logical-contact-system
logical_contact_bridge
mono-camera-system
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

install(PROGRAMS scripts/clean_sdf scripts/high_precision_constants.py scripts/print_robot_urdf scripts/yaml_to_xacro_args
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/scripts)

install(DIRECTORY config launch meshes urdf worlds
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})

install(FILES model.sdf model.config nodelets.xml
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})

catkin_install_python(PROGRAMS nodes/pid_multituner
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})
5 changes: 5 additions & 0 deletions submitted_models/bosdyn_spot/Changelog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Changelog

## 1.0.0

- First working version.
30 changes: 30 additions & 0 deletions submitted_models/bosdyn_spot/config/ekf/base_to_footprint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
frequency: 50

transform_timeout: 0.01
transform_time_offset: 0.045

two_d_mode: false
# diagnostics_agg: true

#x , y , z,
#roll , pitch , yaw,
#vx , vy , vz,
#vroll , vpitch, vyaw,
#ax , ay , az

pose0: base_to_footprint_pose
pose0_config: [true, true, true,
true, true, true,
false, false, false,
false, false, false,
false, false, false]

#imu0: imu/data
#imu0_config: [false, false, false,
# false, false, false,
# true, true, true,
# false, false, false,
# false, false, false]

odom_frame: base_footprint
world_frame: base_footprint
31 changes: 31 additions & 0 deletions submitted_models/bosdyn_spot/config/ekf/footprint_to_odom.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
frequency: 50

transform_timeout: 0.01
# transform_time_offset: 0.05

two_d_mode: true
# diagnostics_agg: true

#x , y , z,
#roll , pitch , yaw,
#vx , vy , vz,
#vroll , vpitch, vyaw,
#ax , ay , az

odom0: odom/raw
odom0_config: [false, false, false,
false, false, false,
true, true, false,
false, false, true,
false, false, false]

imu0: imu/data
imu0_config: [false, false, false,
false, false, true,
false, false, false,
false, false, true,
false, false, false]

odom_frame: odom
base_link_frame: base_footprint
world_frame: odom
12 changes: 12 additions & 0 deletions submitted_models/bosdyn_spot/config/gait/gait.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
knee_orientation : ">>"
pantograph_leg : false
odom_scaler: 1.0
max_linear_velocity_x : 1.5
max_linear_velocity_y : 0.25
max_angular_velocity_z : 0.5
# the following parameters affect stability of the gait
com_x_translation : -0.1
swing_height : 0.08
stance_depth : -0.01
stance_duration : 0.3 # affects max speed and stability
nominal_height : 0.48
23 changes: 23 additions & 0 deletions submitted_models/bosdyn_spot/config/joints/joints.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
left_front:
- front_left_hip_x
- front_left_hip_y
- front_left_knee
- front_left_foot

right_front:
- front_right_hip_x
- front_right_hip_y
- front_right_knee
- front_right_foot

left_hind:
- rear_left_hip_x
- rear_left_hip_y
- rear_left_knee
- rear_left_foot

right_hind:
- rear_right_hip_x
- rear_right_hip_y
- rear_right_knee
- rear_right_foot
24 changes: 24 additions & 0 deletions submitted_models/bosdyn_spot/config/links/links.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
base: body # this should not have the namespace, it is added in state_estimation
left_front:
- $(arg name)/front_left_hip
- $(arg name)/front_left_upper_leg
- $(arg name)/front_left_lower_leg
- $(arg name)/front_left_ee

right_front:
- $(arg name)/front_right_hip
- $(arg name)/front_right_upper_leg
- $(arg name)/front_right_lower_leg
- $(arg name)/front_right_ee

left_hind:
- $(arg name)/rear_left_hip
- $(arg name)/rear_left_upper_leg
- $(arg name)/rear_left_lower_leg
- $(arg name)/rear_left_ee

right_hind:
- $(arg name)/rear_right_hip
- $(arg name)/rear_right_upper_leg
- $(arg name)/rear_right_lower_leg
- $(arg name)/rear_right_ee
12 changes: 12 additions & 0 deletions submitted_models/bosdyn_spot/config/model/common.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
leg_kp: 1e+7
leg_kd: 100.0
leg_mu1: 0.8
leg_mu2: 0.8
# leg_fdir1: '0 0 1'

max_knee_effort: 80
max_knee_velocity: 15
max_hip_x_effort: 80
max_hip_x_velocity: 15
max_hip_y_effort: 80
max_hip_y_velocity: 15
1 change: 1 addition & 0 deletions submitted_models/bosdyn_spot/config/model/ign.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
rendering_target: ign
1 change: 1 addition & 0 deletions submitted_models/bosdyn_spot/config/model/urdf.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
rendering_target: urdf
15 changes: 15 additions & 0 deletions submitted_models/bosdyn_spot/config/ros_control/ros_control.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
"":
joint_group_position_controller:
gains: # also good: 380, 0.2, 5.75
front_left_hip_x : {p: 250, i: 0.2, d: 5.0}
front_left_hip_y : {p: 250, i: 0.2, d: 5.0}
front_left_knee : {p: 250, i: 0.2, d: 5.0}
front_right_hip_x : {p: 250, i: 0.2, d: 5.0}
front_right_hip_y : {p: 250, i: 0.2, d: 5.0}
front_right_knee : {p: 250, i: 0.2, d: 5.0}
rear_left_hip_x : {p: 250, i: 0.2, d: 5.0}
rear_left_hip_y : {p: 250, i: 0.2, d: 5.0}
rear_left_knee : {p: 250, i: 0.2, d: 5.0}
rear_right_hip_x : {p: 250, i: 0.2, d: 5.0}
rear_right_hip_y : {p: 250, i: 0.2, d: 5.0}
rear_right_knee : {p: 250, i: 0.2, d: 5.0}
Loading