Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
459 commits
Select commit Hold shift + click to select a range
f749548
Merge branch 'devel' of github.com:robomechanics/quad-software into d…
Feb 2, 2022
a49d11c
fix merge issues
Feb 2, 2022
3738ea8
init nominal prev foot postion, fix interp when z duration = 0, updat…
Feb 3, 2022
0bc1ac5
limit acceleration of swing foot
Feb 4, 2022
bffdb27
Merge branch 'main' into devel
jcnorby Feb 4, 2022
813b957
Clean up GBP formatting
jcnorby Feb 4, 2022
cc32326
Remove NMPC test requirement to solve problem given CIs limitations
jcnorby Feb 4, 2022
927fed7
better swing foot acceleration limit, fix acceleration interplation a…
Feb 5, 2022
74f3d47
Merge branch 'devel' of github.com:robomechanics/quad-software into d…
Feb 5, 2022
bf73c96
fix init of grf position
Feb 6, 2022
6aeba9c
resolving conflicts
ardalantj Feb 8, 2022
84370ba
PR updates (mostly refactoring for cleanliness and const protection)
jcnorby Feb 15, 2022
d5fc320
Merge branch 'main' into devel
jcnorby Feb 15, 2022
8eeb03f
Rename GlobalBodyPlan functions
jcnorby Feb 15, 2022
224ea31
Merge pull request #198 from robomechanics/melodic_devel_gbp_testing_…
ardalantj Feb 15, 2022
62ee1bf
Unify stance and swing foot planning (#199)
jcnorby Feb 16, 2022
7ab761f
intermediate commit
ardalantj Feb 16, 2022
cd67758
Merge branch 'main' into foot_step_planning_unittests_and_cleanup
ardalantj Feb 16, 2022
253b486
Finihsed adding tests
ardalantj Feb 18, 2022
046626d
intermediate commit before rebase
ardalantj Feb 18, 2022
61cb1f0
Fixed local planner failure when outside the map
ardalantj Feb 18, 2022
213bea5
added pipeline fix
ardalantj Feb 18, 2022
126f269
Addressed pr comments
ardalantj Feb 20, 2022
17e9661
Merge pull request #201 from robomechanics/melodic_devel_local_planne…
ardalantj Feb 20, 2022
eede3f0
Improve simulation and nmpc (#202)
yanhaoy Feb 20, 2022
1374d1b
Reformat to Google Style for C++ and Add CI Linting (#205)
jcnorby Feb 21, 2022
a689021
Update logging and planning launch files, remove global footstep plan…
jcnorby Feb 23, 2022
eb1048c
Update live plot to show ground truth grf, uniform colors and labels …
jcnorby Feb 24, 2022
52ee3bf
Add teleop_twist_joy and configure to robot driver control modes (#211)
jcnorby Feb 24, 2022
225448e
Remove EKF_tests_2021_12_3
jcnorby Feb 28, 2022
5116296
Merge pull request #213 from robomechanics/melodic_devel_remove_csvs
qishuny Feb 28, 2022
9fa4230
add grf plan initialization
jrenaf Mar 2, 2022
0993c49
update initialization
jrenaf Mar 2, 2022
6ef05d9
Merge pull request #218 from robomechanics/melodic_devel_add_grf_init…
jrenaf Mar 2, 2022
e926289
Add stand mode for local planner, remove twist body planner (#217)
jcnorby Mar 4, 2022
bd29e4c
Improve swing foot plan (#214)
yanhaoy Mar 7, 2022
b7f8432
Clean unused or duplicate params in local planner and nmpc controlle…
jcnorby Mar 8, 2022
7113179
multiple robot spawning working
ardalantj Mar 9, 2022
577016d
Add dash profile for rqt and roslaunch support
jcnorby Mar 10, 2022
3638fca
Merge pull request #223 from robomechanics/melodic_devel_add_dashboard
ardalantj Mar 10, 2022
26222cb
intermediate commit
ardalantj Mar 10, 2022
24aad9f
Fix end of stance bug (#224)
jcnorby Mar 12, 2022
d5c629d
Add tcpnodelay to logging, sim control, and sim contact state publish…
jcnorby Mar 12, 2022
4a5384f
Add CMU text to spirit.urdf and spirit_meshes.urdf
jcnorby Mar 12, 2022
840ed49
Realign xml text
jcnorby Mar 14, 2022
74ec38a
Merge pull request #228 from robomechanics/melodic_devel_add_cmu_text
jrenaf Mar 14, 2022
69d4a93
Add tcpnodelay hint to sim command topic, may actually affect perform…
jcnorby Mar 14, 2022
755fcd6
Add state traces to RVizInterface (#230)
jcnorby Mar 20, 2022
fa333cc
multi robot sim working
ardalantj Mar 20, 2022
9fe7d85
cleaned up launch file
ardalantj Mar 21, 2022
73d9200
intermediate commit
ardalantj Mar 21, 2022
28a9fee
Merge pull request #229 from robomechanics/melodic_devel_add_tcpnodel…
qishuny Mar 21, 2022
1ef707d
cleaned up launch files
ardalantj Mar 22, 2022
5a92873
merged with devel changes
ardalantj Mar 22, 2022
c63c61a
modified launch file
ardalantj Mar 22, 2022
9a68ee7
minor changes
ardalantj Mar 22, 2022
e179011
intermediate commit
ardalantj Mar 23, 2022
fb23783
multi robot teleop working
ardalantj Mar 23, 2022
2543fa2
small fix
ardalantj Mar 23, 2022
d97d5f5
Adjust local planner to support arbitrary horizons and match length o…
jcnorby Mar 25, 2022
3cd6482
addressed pr comments
ardalantj Mar 28, 2022
5a484e3
resolved conflicts
ardalantj Mar 28, 2022
87fdec5
Add joint data view (#238)
jcnorby Mar 28, 2022
5f49b10
Add accurate joint limits and linear motor model to gazebo (#236)
jcnorby Mar 28, 2022
463cd63
fixed formatting errors
ardalantj Mar 28, 2022
5a3ff05
fixed formatting
ardalantj Mar 28, 2022
c270d6c
formatting
ardalantj Mar 28, 2022
fa9255e
address pr comments
ardalantj Mar 31, 2022
8fcab67
Add gap worlds and handle missing map data (#237)
jcnorby Apr 4, 2022
399836d
Improve contact stability in simulation (#239)
yanhaoy Apr 5, 2022
4be6347
Fix indexing bug in gbp replanning (#240)
jcnorby Apr 7, 2022
dd517bb
Update terrain to match mocap space, add some extra worlds (#241)
jcnorby Apr 9, 2022
8827612
Add abstract hardware interface and refactor Robot Driver (#242)
jcnorby Apr 14, 2022
88fe57e
addressed comments
ardalantj Apr 15, 2022
0c8e31e
merged recent devel changes
ardalantj Apr 15, 2022
c97ccd4
Add utility function to load multiple sets of casadi code
jcnorby Apr 18, 2022
f4cd741
Respect linting checks
jcnorby Apr 18, 2022
00040d3
Merge pull request #247 from robomechanics/melodic_devel_nmpc_control…
jrenaf Apr 18, 2022
94d7010
roslaunch robot in arguments
jrenaf Apr 19, 2022
4180d08
Merge branch 'devel' into melodic_devel_a1_adaptation
jrenaf Apr 19, 2022
a13eba2
able to stand up
jrenaf Apr 21, 2022
f9eff7d
a1 is working
jrenaf Apr 23, 2022
dcbd3b8
change robot_ to robot_name_, reformat
jrenaf Apr 23, 2022
729894f
Refactor quad logger, include reference state and GRFs (#248)
jcnorby Apr 28, 2022
a2b6b40
Updated Ghost license from Avik and updated quad-software/LICENSE to …
jcnorby Apr 29, 2022
539b0c8
Add Doxygen-updating Github workflow (#255)
jcnorby May 2, 2022
f9e58db
Fix complementary filter in Robot Driver (#253)
jcnorby May 2, 2022
9ff8342
Finalize complementary filter bug fixes (#258)
yanhaoy May 3, 2022
63469e2
merged a1 and multi robot changes
ardalantj May 4, 2022
a922fac
Add framework for adaptive complexity, GBP updates, and many miscella…
jcnorby May 5, 2022
f35d370
Fix small bug in checking isInMap (switch to using grid_map) (#260)
jcnorby May 6, 2022
0964202
made changes to launch file to switch between robots
ardalantj May 6, 2022
61ee5af
Update to c++14 (#262)
jcnorby May 6, 2022
5214fa3
resolved
ardalantj May 6, 2022
da43bd6
removing unneeded files
May 7, 2022
e7508ab
Merge branch 'devel' into melodic_devel_refactor_simulator
May 7, 2022
c958fab
removing commented out .sdf sections.
May 7, 2022
6c13db5
remove unused simulator plugins
May 7, 2022
2a16846
Permit variable horizon lengths in Local Planner, add NLP diagnostics…
jcnorby May 11, 2022
1773930
solve namespace issue, but still has problems
jrenaf May 13, 2022
ea9a711
Resolve multi-robot tf tree and rviz namespaces
jcnorby May 13, 2022
bcd7e3e
Respect linting checks
jcnorby May 13, 2022
d08e56c
Resolve test issuses
jrenaf May 16, 2022
8226971
merge with devel, catkin test fails
jrenaf May 16, 2022
fbd09c9
merge with devel, resolve conflicts, catkin test succeeds, lint respe…
jrenaf May 17, 2022
cbd9d54
Commit to test CI
jcnorby May 17, 2022
46853fe
Have multi robot plan just call planning.launch, fix logging scripts …
jcnorby May 17, 2022
f9de045
solve single and multiple robots launch issue
jrenaf May 18, 2022
7f45b30
rename quad_plan.launch
jrenaf May 18, 2022
5f6eb26
started refactor branch to work on quad_utils and quad_msgs
qishuny May 18, 2022
e7840a9
added a readme to describe the quad util package
qishuny May 18, 2022
5f50ff3
added quad_msgs, quad_utils readme, and delete BodyFroceEstimate.msg
qishuny May 19, 2022
d9a8b86
remove RobotStateTrajectory, modified quad_msgs/README
qishuny May 19, 2022
66aee23
delete unused msgs in CMakeList
qishuny May 19, 2022
a736a85
delete trajectory_publisher and related functions
qishuny May 19, 2022
528110d
delete body_force_estimator and contact_detection packages
qishuny May 19, 2022
ed928ad
delete nmpc dependency on quad_msgs/RobotStateTrajectory.h
qishuny May 19, 2022
0043120
launch file cleanup
astutt May 19, 2022
4c62bc8
Merge branch 'melodic_devel_utilsmsg_refactor' of https://github.com/…
astutt May 19, 2022
a059a9b
delete local_planner dependency on quad_msgs/RobotStateTrajectory.h
qishuny May 19, 2022
420f123
Merge remote-tracking branch 'origin/melodic_devel_utilsmsg_refactor'…
qishuny May 19, 2022
c9084e8
Merge branch 'devel' into melodic_devel_refactor_simulator
May 19, 2022
962bba2
exclude contact/body force.yaml in load_params.launch file
qishuny May 20, 2022
01c359d
solve replay issue, reorganize the rviz profile
jrenaf May 20, 2022
51bfbb7
Updated quad_simulator readme and removed unused launch files.
May 20, 2022
fdc0e48
readme tweaks.
May 20, 2022
fb3a314
Changed math_utils fxns to pass inputs by const
astutt May 20, 2022
2c8fa23
Fix lint
May 20, 2022
12f9f7b
Merge pull request #268 from robomechanics/melodic_devel_refactor_sim…
ardalantj May 20, 2022
4402376
Merge pull request #267 from robomechanics/melodic_devel_utilsmsg_ref…
qishuny May 20, 2022
6a72d6f
Local Planner Refactor (#266)
yanhaoy May 20, 2022
3114454
Global Body Planner Refactor (#264)
jcnorby May 21, 2022
8ff802c
added Ardalan's refactor to robot driver
qishuny May 21, 2022
d9ff47d
fix lint
qishuny May 21, 2022
5d07d7c
change robot driver cmake list format
qishuny May 22, 2022
7fca4c1
change cmake list format again
qishuny May 22, 2022
32e14c3
Update main Readme (#272)
jcnorby May 22, 2022
52ad545
Update README.md
jcnorby May 22, 2022
db9bd32
fixed conflicts
ardalantj May 22, 2022
6e094f1
divide param launch
jrenaf May 22, 2022
9ee7793
reorganize param
jrenaf May 22, 2022
dae5656
Fix local planner timestep bug and readd trajectory publisher (#274)
jcnorby May 22, 2022
faf7d20
Readd gazebo plugins
jcnorby May 22, 2022
8b39d7a
merge new pushes
jrenaf May 22, 2022
790e44f
Merge branch 'melodic_devel_readd_gazebo_plugins' into melodic_devel_…
jcnorby May 22, 2022
f6e05b5
Add correct plugins back in and begin implementing global param reading
jcnorby May 22, 2022
d405067
Merge branch 'devel' into melodic_devel_general_spawn_multiple_robots
jcnorby May 22, 2022
4c53cac
Update visualization and logging to fully support multi-robot operation
jcnorby May 22, 2022
087cd4b
Merge branch 'melodic_devel_general_spawn_multiple_robots' of github.…
jcnorby May 22, 2022
7c551ea
Update plotjuggler to add robot_1 namespace
jcnorby May 22, 2022
5c568a0
Split topic yamls into global and robot topics
jcnorby May 23, 2022
ce48954
Update remaining parameter setting and checking, tweak some leaping p…
jcnorby May 23, 2022
f0a91f5
Add arg to load robot params in circleci script
jcnorby May 23, 2022
a6e25da
Merge pull request #270 from robomechanics/melodic_devel_general_spaw…
jrenaf May 23, 2022
6fda82a
Merge remote-tracking branch 'origin/devel' into melodic_devel_test_r…
qishuny May 23, 2022
88c4f1c
Update README.md
ardalantj May 23, 2022
81a5c99
Merge remote-tracking branch 'origin/devel' into melodic_devel_test_r…
qishuny May 24, 2022
05a077a
in refactor branch move CF estimator from robot driver to its own class
qishuny May 24, 2022
627cc4d
Remove ekf estimator package (now in robot driver) and deprecated lau…
jcnorby May 24, 2022
d356e4b
Merge pull request #279 from robomechanics/melodic_devel_remove_ekf_e…
qishuny May 24, 2022
16b5226
Update documentation (#278)
jcnorby May 24, 2022
82c665d
change function input, fix lint
qishuny May 25, 2022
076f0a6
Rename global planner (#280)
jcnorby May 25, 2022
2e3962c
cleaned out all osqp stuff (#281)
astutt May 25, 2022
351de7d
Merge remote-tracking branch 'origin/devel' into melodic_devel_test_r…
qishuny May 25, 2022
b48c939
Additional changes to estimator inheritance.
qishuny Jun 2, 2022
a0b9f9e
Update README.md
jcnorby Jun 3, 2022
cf2c957
fix format
qishuny Jun 3, 2022
139550f
Merge remote-tracking branch 'origin/devel' into melodic_devel_test_r…
qishuny Jun 3, 2022
4f83a42
additional format fix
qishuny Jun 3, 2022
b577932
Fixed params loading issue. Rewrite comments
qishuny Jun 3, 2022
7cdb975
additional changes to comments
qishuny Jun 3, 2022
bae9ff0
Merge pull request #271 from robomechanics/melodic_devel_test_robot_d…
qishuny Jun 6, 2022
1c05a0f
Minor documentation updates (#287)
astutt Jun 10, 2022
495554a
Fix parameter setting to allow non-spirit robot descriptions (#286)
jcnorby Jun 10, 2022
c77b9a4
Add permissions to doxygen action and remove PRs from action triggers…
jcnorby Jun 10, 2022
3a945c5
NMPC Refactor (#265)
jcnorby Jun 10, 2022
eff84ef
change remote and robot driver launch file
robomechanicslab Jun 24, 2022
ca6cdeb
devel branch able to work on hardware (fixed namespace issues).
robomechanicslab Jul 7, 2022
e84bd85
Resolved merge conflicts and fixed double namespace in sim after hard…
Jul 7, 2022
f4976fb
Merge pull request #301 from robomechanics/melodic_devel_multi_robot_…
jrenaf Jul 11, 2022
67d39e4
rosdep installation switch, a1 model update, qpOASES removal, IPOPT q…
justinyim Nov 29, 2022
dee3696
Bugfix for leap primitive contact handling (revert) and motor model (…
jcnorby Jan 28, 2023
a4824c5
Update devel to noetic_devel (#389)
ologandavid Aug 10, 2023
0f7fd9c
Make utils functions input as const ref (#401)
jcnorby Oct 13, 2023
6403085
Feature/fix yaw wrapping (#400)
jcnorby Oct 13, 2023
2bc8cfd
Addition of Underbrush Walking (#396)
ologandavid Oct 13, 2023
9c0e297
Docker Support, IPOPT, Coinbrew Version Update to 3.14 (#408)
ologandavid Nov 10, 2023
e959cb9
Working External, Msgs
ologandavid Aug 13, 2024
97d6190
Modified Sim
ologandavid Jan 16, 2025
2b42310
Working Env. Spawn
ologandavid Apr 23, 2025
840291c
Cleaned Up Launch Files, Rewrote EmptyWorld.py, Added No GUI
ologandavid Apr 24, 2025
b93e951
Working Robot Launch, Robot Color and IMU Import Still Needs Work
ologandavid May 13, 2025
5b9244c
Robot Shading Improved, GT Estimator, and Controller Plugins Need Work
ologandavid May 14, 2025
c77647b
Working Force/Contact Gazebo Plugins, Started Custom Ign Gazebo Publi…
ologandavid May 15, 2025
e29c79b
Reverting rclcpp::time Changes
ologandavid May 16, 2025
9d4e69a
Working RViz Interface Node, Contacts and Gazebo Estimator Still Need…
ologandavid May 22, 2025
1d9da64
Added Go2, Go2-W, Joint State Publisher, Visualization Plugins, Conta…
ologandavid Jun 2, 2025
fe0339b
Working Joint State Broadcaster, Joint Controller
ologandavid Jun 6, 2025
5c06783
Updated Robot Driver, Need to Add Event Register, Inverse Kinematics …
ologandavid Jun 11, 2025
0808834
Added the Rest of the Controllers, Working Stand with Inverse Kinematics
ologandavid Jun 11, 2025
a6a5ba2
a1 working in sim, Corrected bugs in Underbrush Controller
ologandavid Jun 12, 2025
5ef9081
Fixed Contact State Publisher
ologandavid Jun 16, 2025
6d6df52
Updated NMPC Controller to ROS2
ologandavid Jun 19, 2025
f82c6d5
Added Local Planner ROS2
ologandavid Jun 20, 2025
c4c17ff
Added Launch File for Local Planner, Joystick and Keyboard Working
ologandavid Jun 20, 2025
af336eb
Working Teleop Joy and Keyboard
ologandavid Jun 23, 2025
1fb52c1
Fixed Sim/Comp Clock Timing Bug, Local Planner Timing Mismatch
ologandavid Jun 24, 2025
34e9029
Code Clean-Up, Additional Debugging
ologandavid Jun 24, 2025
5eb9882
Working Local Planner, Teleop Joy, Tested in Sim
ologandavid Jun 25, 2025
f9b75a5
Fixed Logging of Local Planner, Terrain Plugins, Working a1 Local Pla…
ologandavid Jun 25, 2025
fc7e4fb
Modified Local Planner Code to Support Go2, Casadi Dynamics Generatio…
ologandavid Jun 25, 2025
23030a3
Added Logging, Fixed Local Planner Timing Issue
ologandavid Jun 26, 2025
5966c68
Before Editing Launch Sequence
ologandavid Jun 26, 2025
6408e8c
Added PlotJuggler, Bagging Topics, Header Files in Global Planner upd…
ologandavid Jun 27, 2025
fb28415
Working Go2 with Local Planner
ologandavid Jun 28, 2025
ef6b67e
Added Dockerfile, Modifications to Go2W URDF
ologandavid Jun 30, 2025
bce678f
Cleaned up Yaml Files
ologandavid Jun 30, 2025
16b3bb5
Working Multi-Agent Launch Sequence
ologandavid Jun 30, 2025
c9117ca
Fixed Xacro Files, removed hardcoded paths
ologandavid Jul 1, 2025
28da2f8
Updated B2 Xacros
ologandavid Jul 1, 2025
89cfce4
Global Planner Updates
ologandavid Jul 1, 2025
c66f7e9
Building Global Body Planner
ologandavid Jul 15, 2025
15da928
Working Global Body Planner, Path Visualization Needed
ologandavid Jul 15, 2025
73a5f58
Added Underbrush SDFs
ologandavid Jul 25, 2025
08482c0
Fixed Setup Script Paths, Install Scripts
ologandavid Jul 28, 2025
c79d4df
Working Force Application Code for Testing Control
ologandavid Aug 15, 2025
e7537f4
Fixed Force Visualization in Sim
ologandavid Aug 15, 2025
6731934
Remove submodule tracking for external/unitree_sdk2 and vendor files
ologandavid Aug 16, 2025
b2272a4
Ignore external/unitree_sdk2
ologandavid Aug 16, 2025
a56a0c8
Added Support for Learned Controllers
ologandavid Aug 21, 2025
c80b052
Working Policy Deployment in Sim
ologandavid Aug 23, 2025
177a166
Added Random Velocity Tracking, Testing Package, Refactored Model Des…
ologandavid Aug 23, 2025
7ae3f6e
Fixed Logging Scripts to Support ROS2 Development
ologandavid Aug 25, 2025
fed14e5
Stop Tracking Matlab Msg Gen, Working Underbrush Env Spawning
ologandavid Aug 26, 2025
8588fa8
Fixed Undebrush In Gazebo Sim, Plotting Scripts to work with ROS2 Bag…
ologandavid Sep 3, 2025
3a7aa55
Added Dockerfile Setup, VSCode Development, Switched back to MPC Cont…
ologandavid Sep 6, 2025
986b74f
Remove Install, Build and Log for Old Build
ologandavid Sep 6, 2025
7c2cb30
Fixed Bug in Enviornment Spawning, Launching Gazebo in Headless
ologandavid Sep 11, 2025
6b7e237
Added rbdl-submodule
ologandavid Sep 11, 2025
19ad19f
Add Unitree-SDk as a Submodule
ologandavid Sep 11, 2025
a27586b
Re-added Joystick and Keyboard Functionality
ologandavid Sep 11, 2025
fb11e87
Remove Submodules
ologandavid Sep 11, 2025
922b971
Fixed Trajectory Publisher, Reference Bug in ROS Utils
ologandavid Sep 12, 2025
53eae93
Fixed Simulation Torque Limit Check
ologandavid Sep 12, 2025
118ab7d
Launch File, Comment Clean-Up
ologandavid Oct 1, 2025
d9a2064
Added formatting to match the MATLAB code.
georgechanortiz Jan 9, 2026
685eb2f
added process_log.py and helper functions which take an input bag fil…
georgechanortiz Jan 16, 2026
28837b6
your commit message
georgechanortiz Jan 17, 2026
1cc3c6d
Updated save_log.py to ensure files were saved to the correct directory
georgechanortiz Jan 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
26 changes: 13 additions & 13 deletions .circleci/config.yml
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
jobs:
build-and-test:
working_directory: /catkin_ws/src
working_directory: /ros2_ws/src
docker:
- image: osrf/ros:melodic-desktop-full
- image: osrf/ros:jazzy-desktop-full
steps:
- checkout
- run:
Expand All @@ -11,30 +11,30 @@ jobs:
- run:
name: "Call setup script and build"
command: |
source /opt/ros/melodic/setup.bash
source /opt/ros/jazzy/setup.bash
chmod +x setup.sh
./setup.sh
cd /catkin_ws
catkin build -j4 -l4
cd /ros2_ws
colcon build -j4 -l4
- run:
name: "Load ROS params in the background"
command: |
source /opt/ros/melodic/setup.bash
source /catkin_ws/devel/setup.bash
roslaunch quad_utils load_global_params.launch load_robot_params:=true
source /opt/ros/jazzy/setup.bash
source /ros2_ws/install/setup.bash
ros2 launch quad_utils load_global_params.launch load_robot_params:=true
background: true
- run:
name: "Run tests"
command: |
cd /catkin_ws
source /opt/ros/melodic/setup.bash
source /catkin_ws/devel/setup.bash
catkin run_tests -j2 -l2 && catkin_test_results
cd /ros2_ws
source /opt/ros/jazzy/setup.bash
source /ros2_ws/install/setup.bash
colcon run_tests -j2 -l2 && catkin_test_results
- run:
name: "Run soft linting checks"
command: ./scripts/lint_soft.sh
workflows:
version: 2
melodic-build-and-test:
jazzy-build-and-test:
jobs:
- build-and-test
129 changes: 129 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
# Legged Controls Dockerfile
FROM nvcr.io/nvidia/cuda:12.8.1-cudnn-devel-ubuntu24.04

ARG USERNAME=USERNAME
ARG USER_UID=1000
ARG USER_GID=$USER_UID
ARG ONNX_VERSION=1.17.0
ARG ONNXRUNTIME_VERSION=1.22.2
ARG CMAKE_VERSION=4.0.0
ARG NUM_JOBS=16

# Delete user if it exists in container (e.g Ubuntu Noble: ubuntu)
RUN if id -u $USER_UID ; then userdel `id -un $USER_UID` ; fi

# Create the user
RUN groupadd --gid $USER_GID $USERNAME \
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
#
# [Optional] Add sudo support. Omit if you don't need to install software after connecting.
&& apt-get update \
&& apt-get install -y sudo \
&& echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
&& chmod 0440 /etc/sudoers.d/$USERNAME
RUN apt-get update && apt-get upgrade -y
RUN apt-get install -y python3-pip
ENV SHELL /bin/bash

ENV NVIDIA_VISIBLE_DEVICES \
${NVIDIA_VISIBLE_DEVICES:-all}
ENV NVIDIA_DRIVER_CAPABILITIES \
${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics
ENV DEBIAN_FRONTEND=noninteractive

# Install package dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
software-properties-common \
autoconf \
automake \
libtool \
pkg-config \
ca-certificates \
locales \
locales-all \
python3-full \
wget \
sudo \
vim \
tmux \
curl \
less \
htop \
git && \
apt-get clean

# System locale
# Important for UTF-8
ENV LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8

## Install CMake 4.0
RUN cd /tmp && \
wget https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-x86_64.sh && \
bash cmake-${CMAKE_VERSION}-linux-x86_64.sh --prefix=/usr/local --exclude-subdir --skip-license && \
rm -rf /tmp/*

# Install ONNX Runtime (Policy Inference)
# RUN pip install numpy==2.2.4 psutil==7.0.0 pytest==8.3.5 onnx==${ONNX_VERSION}
RUN cd /tmp && \
git clone --recursive --branch v${ONNXRUNTIME_VERSION} https://github.com/Microsoft/onnxruntime
RUN cd /tmp && \
cd onnxruntime && \
./build.sh \
--allow_running_as_root \
--cuda_home /usr/local/cuda \
--cudnn_home /usr/lib/x86_64-linux-gnu/ \
--use_cuda \
# --use_tensorrt \
# --tensorrt_home /usr/lib/x86_64-linux-gnu/ \
--config RelWithDebInfo \
--build_shared_lib \
# Somehow --build_wheel cannot be used in Docker build because NumPy cannot be found.
# However, if this command is run in a Docker container, it works.
# --build_wheel \
--skip_tests \
--parallel ${NUM_JOBS} && \
cd build/Linux/RelWithDebInfo && \
make install && \
# pip install dist/* && \
rm -rf /tmp/*
ENV LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

# Install ROS2 Jazzy
SHELL ["/bin/bash", "-lc"]
RUN apt-get update && apt-get install -y --no-install-recommends \
software-properties-common && \
add-apt-repository universe && \
curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key \
-o /usr/share/keyrings/ros-archive-keyring.gpg && \
sh -c 'echo "deb [signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] \
http://packages.ros.org/ros2/ubuntu noble main" > \
/etc/apt/sources.list.d/ros2.list' && \
apt-get update && apt-get install -y --no-install-recommends \
ros-jazzy-desktop \
python3-rosdep python3-colcon-common-extensions \
&& rm -rf /var/lib/apt/lists/*

# Initialize rosdep (optional if you build workspaces later)
RUN rosdep init || true && rosdep update
RUN echo "source /opt/ros/jazzy/setup.bash" >> /etc/bash.bashrc

# Install Livox SDK
RUN which cmake && cmake --version
RUN apt-get install -y cmake
WORKDIR /root/
RUN git clone https://github.com/liyufan/Livox-SDK2.git
WORKDIR /root/Livox-SDK2
RUN mkdir build
WORKDIR /root/Livox-SDK2/build
RUN cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 .. && make -j2 && make install

# Install Python
WORKDIR /root/ros2_ws

# Load ROS environment at each run
COPY ./ros_entrypoint.sh /
RUN chmod 755 /ros_entrypoint.sh
ENTRYPOINT ["/ros_entrypoint.sh"]

CMD ["bash"]
52 changes: 52 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{
"name": "ROS 2 Development Container",
"privileged": true,
"remoteUser": "root",

"build": {
"dockerfile": "Dockerfile",
"args": { "USERNAME": "rml" }
},

"workspaceFolder": "/root/ros2_ws/src/",
"workspaceMount": "source=${localWorkspaceFolder}/..,target=/root/ros2_ws/src/,type=bind",

"customizations": {
"vscode": {
"extensions": [
"ms-vscode.cpptools",
"ms-vscode.cpptools-themes",
"ms-vscode.cmake-tools",
"twxs.cmake",
"donjayamanne.python-extension-pack",
"eamodio.gitlens",
"ms-iot.vscode-ros"
]
}
},

"containerEnv": {
"DISPLAY": "${localEnv:DISPLAY}",
"ROS_AUTOMATIC_DISCOVERY_RANGE": "LOCALHOST",
"ROS_DOMAIN_ID": "42",
"__GLX_VENDOR_LIBRARY_NAME": "nvidia"
},

"runArgs": [
"--gpus", "all",
"-e", "NVIDIA_VISIBLE_DEVICES=all",
"-e", "NVIDIA_DRIVER_CAPABILITIES=all",
"--net=host",
"--ipc=host",
"--shm-size=4g",
"-v", "/tmp/.X11-unix:/tmp/.X11-unix:ro",
"-v", "/dev/dri:/dev/dri",
"-e", "XDG_RUNTIME_DIR=/run/user/${localUserId}",
"-e", "WAYLAND_DISPLAY=${localEnv:WAYLAND_DISPLAY}",
"-v", "/run/user/${localUserId}:/run/user/${localUserId}",
"--entrypoint", "/bin/bash" // <-- override your image ENTRYPOINT for VS Code bootstrap
],

"overrideCommand": true, // let VS Code control the startup command
"postStartCommand": "bash -lc 'source /opt/ros/jazzy/setup.bash && echo \"source /opt/ros/jazzy/setup.bash\" >> ~/.bashrc'"
}
14 changes: 14 additions & 0 deletions .devcontainer/ros_entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash

set -e

# Ros build
source "/opt/ros/jazzy/setup.bash"

echo "==============ROS2 Docker Env Ready================"

if [ -n "$VSCODE_REMOTE_CONTAINERS" ]; then
exec "$@"
fi
cd "${WS_DIR:-$HOME/ros2_ws}"
exec "$@"
33 changes: 33 additions & 0 deletions .devcontainer/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/bin/bash
# Author : Taeyoung Kim (https://github.com/Taeyoung96)

# Set the project directory (PROJECT_DIR) as the parent directory of the current working directory
PROJECT_DIR=$(dirname "$PWD")

# Move to the parent folder of the project directory
cd "$PROJECT_DIR"

# Print the current working directory to verify the change
echo "Current working directory: $PROJECT_DIR"

# Check if arguments are provided for the image name and tag
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <container_name> <image_name:tag>"
exit 1
fi
CONTAINER_NAME="$1"
IMAGE_NAME="$2"

docker run --privileged -it \
--gpus='all,"capabilities=compute,utility,graphics,display"' \
-e NVIDIA_DRIVER_CAPABILITIES=all \
-e NVIDIA_VISIBLE_DEVICES=all \
--volume="$PROJECT_DIR:/root/ros2_ws/src/quad-sdk" \
--volume=/tmp/.X11-unix:/tmp/.X11-unix:rw \
--net=host \
--ipc=host \
--shm-size=4gb \
--name="$CONTAINER_NAME" \
--env="DISPLAY=$DISPLAY" \
--rm \
"$IMAGE_NAME" /bin/bash
Empty file modified .github/workflows/doxygen.yml
100644 → 100755
Empty file.
2 changes: 2 additions & 0 deletions .gitignore
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@ docs/
external/ipopt/*
!external/ipopt/.gitkeep
*.csv
robot_driver/include/robot_driver/models/
matlab_msg_gen/
6 changes: 6 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[submodule "external/rbdl-orb"]
path = external/rbdl-orb
url = https://github.com/ORB-HD/rbdl-orb
[submodule "external/unitree_sdk2"]
path = external/unitree_sdk2
url = https://github.com/unitreerobotics/unitree_sdk2.git
Empty file modified Doxyfile
100644 → 100755
Empty file.
Empty file modified LICENSE
100644 → 100755
Empty file.
Empty file modified README.md
100644 → 100755
Empty file.
80 changes: 80 additions & 0 deletions body_force_estimator/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
cmake_minimum_required(VERSION 3.8)
project(body_force_estimator)

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
endif()

# find dependencies
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(std_msgs REQUIRED)
find_package(quad_msgs REQUIRED)
find_package(quad_utils REQUIRED)
# uncomment the following section in order to fill in
# further dependencies manually.
# find_package(<dependency> REQUIRED)

add_library(${PROJECT_NAME}
src/body_force_estimator.cpp
src/body_force_estimator_dynamics.cpp
)
ament_target_dependencies(${PROJECT_NAME}
rclcpp
std_msgs
quad_msgs
quad_utils
)
target_include_directories(${PROJECT_NAME} PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)

add_executable(${PROJECT_NAME}_node src/body_force_estimator_node.cpp)
target_link_libraries(${PROJECT_NAME}_node ${PROJECT_NAME})
ament_target_dependencies(${PROJECT_NAME}_node
rclcpp
std_msgs
quad_msgs
quad_utils
)

install(TARGETS
${PROJECT_NAME}
${PROJECT_NAME}_node
DESTINATION lib/${PROJECT_NAME}
)

install(
DIRECTORY config/
DESTINATION share/${PROJECT_NAME}/config
)

install(
DIRECTORY include/
DESTINATION include
)

install(PROGRAMS
scripts/leg_flail.py
scripts/path_following.py
DESTINATION lib/${PROJECT_NAME}
)

ament_export_include_directories(include)
ament_export_dependencies(rclcpp std_msgs quad_msgs quad_utils)


if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)
# the following line skips the linter which checks for copyrights
# comment the line when a copyright and license is added to all source files
set(ament_cmake_copyright_FOUND TRUE)
# the following line skips cpplint (only works in a git repo)
# comment the line when this package is in a git repo and when
# a copyright and license is added to all source files
set(ament_cmake_cpplint_FOUND TRUE)
ament_lint_auto_find_test_dependencies()
endif()

ament_package()
Loading