Code underlying publication: Unwieldy object delivery with nonholonomic mobile base: A stable pushing approach
DOI: 10.4121/1840c996-1a1f-4a33-8513-a815d1457a8f
Datacite citation style
Dataset
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".
History
- 2024-10-29 first online, published, posted
Publisher
4TU.ResearchDataFormat
.pyAssociated peer-reviewed publication
Unwieldy Object Delivery With Nonholonomic Mobile Base: A Stable Pushing ApproachFunding
- CSC scholarship (grant code 202306210072) China Scholarship Council
Organizations
TU Delft, Faculty of Mechanical Engineering, Department of Cognitive roboticsDATA
Files (77)
- 935 bytesMD5:
c2c2084843bf975186e4a2585072581areadme.md - 159 bytesMD5:
e3431f27ca11aaa772975cb411a4b466readme.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:
abbd6f3cc5358457cf34a170e367397bcal_moment.m - 4,006 bytesMD5:
528f7c8880e1d43a57bd6489153900ccchanged_dynamics.asv - 4,006 bytesMD5:
528f7c8880e1d43a57bd6489153900ccchanged_dynamics.m - 4,252 bytesMD5:
042db0cb4b7c55a6b22d90522cf04d54changed_dynamics_v2.asv - 9,789 bytesMD5:
5ecd3b96d70610c1d624da57ba3fc884changed_dynamics_v2.m - 9,275 bytesMD5:
0f85c47b7150bf1f9514c02767ae0670changed_dynamics_v3.m - 71 bytesMD5:
636cd861599b5d4ad287fc8e8349d632connect_husky.bash - 2,854 bytesMD5:
8f18abf9f72a7905b9c634a7d1ea120acylinder_rob_push_dynamics.cpython-38.pyc - 2,921 bytesMD5:
a0fc1f237e5ef7b90b4d8f6bf2367171cylinder_rob_push_dynamics_casadi.cpython-38.pyc - 3,634 bytesMD5:
4b377534684596ba02bb6494ddeec6decylinder_rob_push_dynamics_comliFricModel.cpython-38.pyc - 2,893 bytesMD5:
1af0cf0b0cc51320b0014f4497297f57cylinder_rob_push_dynamics_dae.cpython-38.pyc - 3,766 bytesMD5:
f7fe808e5c454e168fadf9c078705529cylinder_rob_push_dynamics_dae_2geneState.cpython-38.pyc - 2,920 bytesMD5:
a4c172d4fa5ef1eb538b84e9b8a56384cylinder_rob_push_dynamics_dae_casadi.cpython-38.pyc - 3,726 bytesMD5:
8ccb6e7e89d11362b79d10b880af0cfdcylinder_rob_push_dynamics_dae_casadi_2geneState.cpython-38.pyc - 3,597 bytesMD5:
2b7c65dd8706617d10ca437438979045cylinder_rob_push_dynamics_dae_compliFricModel.cpython-38.pyc - 2,790 bytesMD5:
e0f6ac1535fd954dcca6e9cf020048aacylinder_rob_push_dynamics_for_sysId.cpython-38.pyc - 3,016 bytesMD5:
a883fdbf44dde7a4cebe2f35d49d0b13cylinder_rob_push_dynamics_mpc.cpython-38.pyc - 3,026 bytesMD5:
88a6d95ac9b34b4e68495a5a582abd7ccylinder_rob_push_dynamics_mpc_expl.cpython-38.pyc - 3,385 bytesMD5:
7e0d9dfce2e8bb33e3d932515da60faccylinder_rob_push_dynamics_mpc_impl.cpython-38.pyc - 173 bytesMD5:
5cfb07744e97e677336fb36f5572b9ecd_R_theta.m - 1,579 bytesMD5:
b888d3916dc20b4d9e5f621591080835dd_d.m - 344 bytesMD5:
37e28664fb9898a86db5f9fd3a75a7e0dd_R_theta.m - 9,719 bytesMD5:
ff555429139dd55268103bb651f072b3free_push_mpc_controller.cpython-38.pyc - 9,790 bytesMD5:
1e45d02fad2dad16f79f9ee13268e428free_push_mpc_controller_acados.cpython-38.pyc - 8,392 bytesMD5:
819ccec23585153c59a521b75ad91938free_push_mpc_controller_casadi.cpython-38.pyc - 5,236 bytesMD5:
15f5493b60166a7a9304f503e798f3b9general_problem_setup.py - 16,536 bytesMD5:
13201f4d8c45401f2828f0abc5907abdhusky_control.py - 10,398 bytesMD5:
e40aabd8bc0899e95be28af5c7b56902husky_visualization.py - 945 bytesMD5:
a2aedf49da2f61d3f8c97c096ba2a3c9integrator.cpython-38.pyc - 1,619 bytesMD5:
6fc417701f89de290d3fa1f969678a68integrator.py - 6,962 bytesMD5:
032ac039b1729fba08b4acd75834d1c2navi_mpc_controller_casadi.cpython-37.pyc - 7,525 bytesMD5:
3def64ed88f3ba2c47d184235484cbd9navi_mpc_controller_casadi.cpython-38.pyc - 12,990 bytesMD5:
e34200c2bef64bfea7dafc53e020be2anavi_mpc_controller_casadi.py - 123 bytesMD5:
e60b60bfd2d2a230566e7d4932d2367bR_theta.m - 3,212 bytesMD5:
355bca16ec16877d851776802e2b3ac9Rectangle.cpython-38.pyc - 3,906 bytesMD5:
c65e07d71d7f914dafd5fc845b84f89cRectangle.py - 5,817 bytesMD5:
9c81e40db89aebc528bd7b8c400029d9rob_navi.cpython-38.pyc - 7,829 bytesMD5:
bda0a686927266499f61c79c10820810rob_navi.py - 603 bytesMD5:
3284efae1609c182e616a01940ecb407rob_navi_dynamics.cpython-38.pyc - 582 bytesMD5:
f498f9196d54cd2c7ac3c8421f90450brob_navi_dynamics.py - 639 bytesMD5:
753c5b201338379a38c3818c8ac66b29rob_navi_dynamics_casadi.cpython-38.pyc - 609 bytesMD5:
cc26e5a60072dd83e988f4ff2ef7c2adrob_navi_dynamics_casadi.py - 6,108 bytesMD5:
07e0f17a57b399f432f0cc6f827d32d0rob_navi_rect.cpython-38.pyc - 8,418 bytesMD5:
c9567e4751d720a517e4f7796f8a46c9rob_navi_rect.py - 10,741 bytesMD5:
afb50d2cdaad8a4a3cc2c130fa22c6f2rob_navi_rect_switching.cpython-38.pyc - 18,766 bytesMD5:
48cb049b383d06e3eb5e802899414304rob_navi_rect_switching.py - 10,410 bytesMD5:
7275ae4b89d86433846bc084fed4a62erob_navi_rect_switching_with_obs.cpython-38.pyc - 13,810 bytesMD5:
9bd60dce97103bd186033a6128f1dd3frob_navi_rect_switching_with_obs.py - 12,695 bytesMD5:
4b2f190e1ef50c5059ebc108a701f0f8robot_pushing.cpython-38.pyc - 10,309 bytesMD5:
ad65e396c310cd06dee364e3b1c12229robot_pushing_dae.cpython-38.pyc - 9,805 bytesMD5:
ba0950bfb7909e9db831ad22ca9d8fderobot_pushing_v.cpython-38.pyc - 109 bytesMD5:
5d4db2f2565bc281cd9e08d5dec43b27sigmoid_adap.m - 9,680 bytesMD5:
844706f2611a60232080e93da78ef038stable_push_env_z.cpython-38.pyc - 7,680 bytesMD5:
cba9966355f6b997e772f55ae095fa02stable_push_mpc_controller.cpython-37.pyc - 7,711 bytesMD5:
fb10f06d8585db45a63de3fb03a078e0stable_push_mpc_controller.cpython-38.pyc - 13,014 bytesMD5:
14c465883d1bfa83e42ec59180846be3stable_push_mpc_controller.py - 7,826 bytesMD5:
a3083d93f17f5997bb50f1d06ab8e7b6stable_push_mpc_controller_jiaji.cpython-38.pyc - 8,126 bytesMD5:
bc8b5c239eaff638dae96b0bebc2a38bstable_push_obs_mpc_controller.cpython-38.pyc - 12,491 bytesMD5:
57a28251543cacf4b5d5f896c572b847stable_push_with_contact_switching_vis.cpython-38.pyc - 22,443 bytesMD5:
dfebda3c02bf312cf8b3ad6e857df253stable_push_with_contact_switching_vis.py - 3,948 bytesMD5:
43f729d3bb0def200f9cb93640d4592dState_Estimator.py - 6,310 bytesMD5:
cd266c430ef1fd16d9e25d6e44f0e88ctest.m - 149 bytesMD5:
2a3b7e9e7a91a6f086cb62c8345f8b80test.py - 4,950 bytesMD5:
0063b6f95cf3a001e0fb562695b6aa07utils.cpython-38.pyc - 5,431 bytesMD5:
6a4de025c1ffc6c09b09c6cd3d8a6bc7utils.py -
download all files (zip)
402,794 bytes unzipped





