Code underlying publication: Unwieldy object delivery with nonholonomic mobile base: A stable pushing approach
doi: 10.4121/1840c996-1a1f-4a33-8513-a815d1457a8f
This collection contains all code to produce the results of "Unwieldy Object Delivery With Nonholonomic Mobile Base: A Stable Pushing Approach," in IEEE Robotics and Automation Letters, vol. 8, no. 11, pp. 7727-7734, Nov. 2023, doi: 10.1109/LRA.2023.3322323. This paper presents a stable pushing approach for mobile robots to deliver objects while maintaining a stiff contact between the robot and the object. This method significantly reduces the risk of losing the object during transport, thereby decreasing reliance on robust state estimation. The codes are written in Python and tested with the Clearpath Husky and Boxer robots. To reproduce the results, please refer to "readme.md".
- 2024-10-29 first online, published, posted
- CSC scholarship (grant code 202306210072) China Scholarship Council
DATA
- 935 bytesMD5:
c2c2084843bf975186e4a2585072581a
readme.md - 159 bytesMD5:
e3431f27ca11aaa772975cb411a4b466
readme.md - 178 bytesMD5:
bc901621c27a56320b9f4350becc5322
__init__.cpython-37.pyc - 707 bytesMD5:
a665fefc47d9633710871a06e77c3e2b
__init__.cpython-37.pyc - 163 bytesMD5:
2734318df8902c54de9312fc4da4e5c0
__init__.cpython-38.pyc - 173 bytesMD5:
2ae14b450bd41a0a818d691b19f47744
__init__.cpython-38.pyc - 1,028 bytesMD5:
4af60c517f4c83a1961044ecd38e6599
__init__.cpython-38.pyc - 1,028 bytesMD5:
abf70f8889c99ba792632f4382485cd4
__init__.py - 0 bytesMD5:
d41d8cd98f00b204e9800998ecf8427e
__init__.py - 0 bytesMD5:
d41d8cd98f00b204e9800998ecf8427e
__init__.py - 0 bytesMD5:
d41d8cd98f00b204e9800998ecf8427e
__init__.py - 0 bytesMD5:
d41d8cd98f00b204e9800998ecf8427e
__init__.py - 2,038 bytesMD5:
abbd6f3cc5358457cf34a170e367397b
cal_moment.m - 4,006 bytesMD5:
528f7c8880e1d43a57bd6489153900cc
changed_dynamics.asv - 4,006 bytesMD5:
528f7c8880e1d43a57bd6489153900cc
changed_dynamics.m - 4,252 bytesMD5:
042db0cb4b7c55a6b22d90522cf04d54
changed_dynamics_v2.asv - 9,789 bytesMD5:
5ecd3b96d70610c1d624da57ba3fc884
changed_dynamics_v2.m - 9,275 bytesMD5:
0f85c47b7150bf1f9514c02767ae0670
changed_dynamics_v3.m - 71 bytesMD5:
636cd861599b5d4ad287fc8e8349d632
connect_husky.bash - 2,854 bytesMD5:
8f18abf9f72a7905b9c634a7d1ea120a
cylinder_rob_push_dynamics.cpython-38.pyc - 2,921 bytesMD5:
a0fc1f237e5ef7b90b4d8f6bf2367171
cylinder_rob_push_dynamics_casadi.cpython-38.pyc - 3,634 bytesMD5:
4b377534684596ba02bb6494ddeec6de
cylinder_rob_push_dynamics_comliFricModel.cpython-38.pyc - 2,893 bytesMD5:
1af0cf0b0cc51320b0014f4497297f57
cylinder_rob_push_dynamics_dae.cpython-38.pyc - 3,766 bytesMD5:
f7fe808e5c454e168fadf9c078705529
cylinder_rob_push_dynamics_dae_2geneState.cpython-38.pyc - 2,920 bytesMD5:
a4c172d4fa5ef1eb538b84e9b8a56384
cylinder_rob_push_dynamics_dae_casadi.cpython-38.pyc - 3,726 bytesMD5:
8ccb6e7e89d11362b79d10b880af0cfd
cylinder_rob_push_dynamics_dae_casadi_2geneState.cpython-38.pyc - 3,597 bytesMD5:
2b7c65dd8706617d10ca437438979045
cylinder_rob_push_dynamics_dae_compliFricModel.cpython-38.pyc - 2,790 bytesMD5:
e0f6ac1535fd954dcca6e9cf020048aa
cylinder_rob_push_dynamics_for_sysId.cpython-38.pyc - 3,016 bytesMD5:
a883fdbf44dde7a4cebe2f35d49d0b13
cylinder_rob_push_dynamics_mpc.cpython-38.pyc - 3,026 bytesMD5:
88a6d95ac9b34b4e68495a5a582abd7c
cylinder_rob_push_dynamics_mpc_expl.cpython-38.pyc - 3,385 bytesMD5:
7e0d9dfce2e8bb33e3d932515da60fac
cylinder_rob_push_dynamics_mpc_impl.cpython-38.pyc - 173 bytesMD5:
5cfb07744e97e677336fb36f5572b9ec
d_R_theta.m - 1,579 bytesMD5:
b888d3916dc20b4d9e5f621591080835
dd_d.m - 344 bytesMD5:
37e28664fb9898a86db5f9fd3a75a7e0
dd_R_theta.m - 9,719 bytesMD5:
ff555429139dd55268103bb651f072b3
free_push_mpc_controller.cpython-38.pyc - 9,790 bytesMD5:
1e45d02fad2dad16f79f9ee13268e428
free_push_mpc_controller_acados.cpython-38.pyc - 8,392 bytesMD5:
819ccec23585153c59a521b75ad91938
free_push_mpc_controller_casadi.cpython-38.pyc - 5,236 bytesMD5:
15f5493b60166a7a9304f503e798f3b9
general_problem_setup.py - 16,536 bytesMD5:
13201f4d8c45401f2828f0abc5907abd
husky_control.py - 10,398 bytesMD5:
e40aabd8bc0899e95be28af5c7b56902
husky_visualization.py - 945 bytesMD5:
a2aedf49da2f61d3f8c97c096ba2a3c9
integrator.cpython-38.pyc - 1,619 bytesMD5:
6fc417701f89de290d3fa1f969678a68
integrator.py - 6,962 bytesMD5:
032ac039b1729fba08b4acd75834d1c2
navi_mpc_controller_casadi.cpython-37.pyc - 7,525 bytesMD5:
3def64ed88f3ba2c47d184235484cbd9
navi_mpc_controller_casadi.cpython-38.pyc - 12,990 bytesMD5:
e34200c2bef64bfea7dafc53e020be2a
navi_mpc_controller_casadi.py - 123 bytesMD5:
e60b60bfd2d2a230566e7d4932d2367b
R_theta.m - 3,212 bytesMD5:
355bca16ec16877d851776802e2b3ac9
Rectangle.cpython-38.pyc - 3,906 bytesMD5:
c65e07d71d7f914dafd5fc845b84f89c
Rectangle.py - 5,817 bytesMD5:
9c81e40db89aebc528bd7b8c400029d9
rob_navi.cpython-38.pyc - 7,829 bytesMD5:
bda0a686927266499f61c79c10820810
rob_navi.py - 603 bytesMD5:
3284efae1609c182e616a01940ecb407
rob_navi_dynamics.cpython-38.pyc - 582 bytesMD5:
f498f9196d54cd2c7ac3c8421f90450b
rob_navi_dynamics.py - 639 bytesMD5:
753c5b201338379a38c3818c8ac66b29
rob_navi_dynamics_casadi.cpython-38.pyc - 609 bytesMD5:
cc26e5a60072dd83e988f4ff2ef7c2ad
rob_navi_dynamics_casadi.py - 6,108 bytesMD5:
07e0f17a57b399f432f0cc6f827d32d0
rob_navi_rect.cpython-38.pyc - 8,418 bytesMD5:
c9567e4751d720a517e4f7796f8a46c9
rob_navi_rect.py - 10,741 bytesMD5:
afb50d2cdaad8a4a3cc2c130fa22c6f2
rob_navi_rect_switching.cpython-38.pyc - 18,766 bytesMD5:
48cb049b383d06e3eb5e802899414304
rob_navi_rect_switching.py - 10,410 bytesMD5:
7275ae4b89d86433846bc084fed4a62e
rob_navi_rect_switching_with_obs.cpython-38.pyc - 13,810 bytesMD5:
9bd60dce97103bd186033a6128f1dd3f
rob_navi_rect_switching_with_obs.py - 12,695 bytesMD5:
4b2f190e1ef50c5059ebc108a701f0f8
robot_pushing.cpython-38.pyc - 10,309 bytesMD5:
ad65e396c310cd06dee364e3b1c12229
robot_pushing_dae.cpython-38.pyc - 9,805 bytesMD5:
ba0950bfb7909e9db831ad22ca9d8fde
robot_pushing_v.cpython-38.pyc - 109 bytesMD5:
5d4db2f2565bc281cd9e08d5dec43b27
sigmoid_adap.m - 9,680 bytesMD5:
844706f2611a60232080e93da78ef038
stable_push_env_z.cpython-38.pyc - 7,680 bytesMD5:
cba9966355f6b997e772f55ae095fa02
stable_push_mpc_controller.cpython-37.pyc - 7,711 bytesMD5:
fb10f06d8585db45a63de3fb03a078e0
stable_push_mpc_controller.cpython-38.pyc - 13,014 bytesMD5:
14c465883d1bfa83e42ec59180846be3
stable_push_mpc_controller.py - 7,826 bytesMD5:
a3083d93f17f5997bb50f1d06ab8e7b6
stable_push_mpc_controller_jiaji.cpython-38.pyc - 8,126 bytesMD5:
bc8b5c239eaff638dae96b0bebc2a38b
stable_push_obs_mpc_controller.cpython-38.pyc - 12,491 bytesMD5:
57a28251543cacf4b5d5f896c572b847
stable_push_with_contact_switching_vis.cpython-38.pyc - 22,443 bytesMD5:
dfebda3c02bf312cf8b3ad6e857df253
stable_push_with_contact_switching_vis.py - 3,948 bytesMD5:
43f729d3bb0def200f9cb93640d4592d
State_Estimator.py - 6,310 bytesMD5:
cd266c430ef1fd16d9e25d6e44f0e88c
test.m - 149 bytesMD5:
2a3b7e9e7a91a6f086cb62c8345f8b80
test.py - 4,950 bytesMD5:
0063b6f95cf3a001e0fb562695b6aa07
utils.cpython-38.pyc - 5,431 bytesMD5:
6a4de025c1ffc6c09b09c6cd3d8a6bc7
utils.py -
download all files (zip)
402,794 bytes unzipped