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

[Delta][WIP] latest version for real platform #609

Open
wants to merge 542 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
542 commits
Select commit Hold shift + click to select a range
eaa8574
[delta] workaround to calculate real contact point based on cog state
sugikazu75 Jan 31, 2024
38617ec
[delta][urdf] fix rotor direction according to real machine
sugikazu75 Feb 5, 2024
32e0aa4
[delta][OptimalDesign] fix rotor direction according to real machine,…
sugikazu75 Feb 5, 2024
b481362
[delta][model] consider counter torque in full wrench allocation matrix
sugikazu75 Feb 5, 2024
c0bd04e
[delta][urdf] modify mesh extension for mujoco model generation
sugikazu75 Feb 5, 2024
4728458
[delta][OptimalDesign] refactor to get rotor origin from robot model …
sugikazu75 Feb 5, 2024
3679b7c
[delta] update transformation demo script
sugikazu75 Feb 6, 2024
f3f52d4
[delta][control] workaround to get rotor tile from urdf
sugikazu75 Feb 7, 2024
971135a
[delta] update battery config accourding to dragon
sugikazu75 Feb 7, 2024
a6f7f03
[delta] add new type 20240207_new_frame
sugikazu75 Feb 7, 2024
524992f
[delta][OptimalDesign] enable to set robot type as parameter
sugikazu75 Feb 7, 2024
ccab940
[delta] update urdf
sugikazu75 Feb 7, 2024
11f5075
[delta] update mesh
sugikazu75 Feb 7, 2024
0814eae
[delta] remove deplecated robot type
sugikazu75 Feb 7, 2024
7dc0c13
[delta] update motor info: gemfan 9inch 3wing
sugikazu75 Feb 8, 2024
d208af4
[delta] update default type in launch
sugikazu75 Feb 8, 2024
68b140a
[delta][control] do not transition to standing state when osqp solve …
sugikazu75 Feb 8, 2024
bd60bbd
[delta] update aerial transformation demo script
sugikazu75 Feb 11, 2024
27d62ff
[delta] add joy stick key bind to rotate around yaw while rolling mod…
sugikazu75 Feb 11, 2024
7bc4051
[delta][control] publish gravity compensation term for debug
sugikazu75 Feb 12, 2024
e73659c
[delta][control] separate control params for standing and rolling
sugikazu75 Feb 12, 2024
151472e
[delta] add rostest for delta hovering
sugikazu75 Feb 13, 2024
cf7927e
[WIP][hydrus] add reset pose in ros test. The reason test will be pas…
sugikazu75 Feb 13, 2024
11848e4
[WIP][hydrus] add threshold of aerial transformation test for hydrus
sugikazu75 Feb 13, 2024
26aea36
[delta] update rostest to check aerial transformation
sugikazu75 Feb 14, 2024
4fe5a76
[WIP][delta] send pi/2 as current target baselink roll in standing mo…
sugikazu75 Feb 15, 2024
138671d
[delta] successed standing experiment
sugikazu75 Feb 15, 2024
60d746a
[aerial_robot_estimation] work around state estimation with so3 system
sugikazu75 Feb 18, 2024
8cb5ad6
Revert "[aerial_robot_model] remove desire coordinate subscriber in r…
sugikazu75 Feb 18, 2024
29516ac
[delta][navigation] refactored baselink rotation process for so3 atti…
sugikazu75 Feb 19, 2024
1b84199
[delta][navigation] set final target baselink quaternion to 0 when do…
sugikazu75 Feb 19, 2024
c30cd43
[delta][control] use rotation matrix caclulated from R_baselink and d…
sugikazu75 Feb 19, 2024
ace01d9
[delta][control] do not update rolling angle when error is large
sugikazu75 Feb 20, 2024
e5065bb
[spinal] change interface of desire coord from DesireCoord to Quaternion
sugikazu75 Feb 20, 2024
d158344
[delta] change desire coordinate interface from DesireCoord to Quater…
sugikazu75 Feb 20, 2024
67993a0
[delta] enable to switch attitude control in spinal or not
sugikazu75 Feb 20, 2024
de508e6
[aerial_robot_control][pose_linear_controller] use so3 error for rota…
sugikazu75 Feb 20, 2024
e6b1fbc
[delta] use so3 error for rotational motion
sugikazu75 Feb 20, 2024
f988cce
[WIP][delta] switch to standing state if roll error is large
sugikazu75 Feb 27, 2024
09adc7c
[delta][control] add param for swtiching state
sugikazu75 Feb 27, 2024
562ca09
Revert "[aerial_robot_control][pose_linear_controller] use so3 error …
sugikazu75 Feb 27, 2024
d47b759
Revert "[delta] use so3 error for rotational motion"
sugikazu75 Feb 27, 2024
5f4eff4
add motor power calculation node
sugikazu75 Feb 29, 2024
c7217cf
add launch for calculation of motor power
sugikazu75 Feb 29, 2024
857ceb1
[delta] add motor power info of delta and launch motor power calculat…
sugikazu75 Feb 29, 2024
b5db940
suppress error message in power calculation node
sugikazu75 Feb 29, 2024
d71ab86
[aerial_robot_control] debug for CI
sugikazu75 Feb 29, 2024
2a05a15
[aerial_robot_control] publish motor currency
sugikazu75 Feb 29, 2024
e63c69b
[aerial_robot_control] debug for CI
sugikazu75 Feb 29, 2024
58dc820
[aerial_robot_control] support external interpolation in motor power …
sugikazu75 Mar 19, 2024
2664c21
[aerial_robot_control] publish motor currency
sugikazu75 Mar 19, 2024
243089b
[delta][model] update contact point calculation method. remove center…
sugikazu75 Mar 19, 2024
5251141
[delta][control] update real contact point calculation method. consid…
sugikazu75 Mar 19, 2024
ac77bca
[delta] change paths to motor info config files
sugikazu75 Mar 19, 2024
b1bdebe
[estimation][imu] fix bug?: change calculation method of yaw angle of…
sugikazu75 Mar 22, 2024
9c96928
[delta][control][navigation] refactor rolling navigation: move baseli…
sugikazu75 Mar 25, 2024
2e4de1a
[delta][model] fix the dimenion of full wrench allocation matrix from…
sugikazu75 Mar 25, 2024
a594241
[delta][navigation] fix yaw angle control with joy
sugikazu75 Mar 25, 2024
6a22e57
[dragon] pass build with dependency of pinocchio
sugikazu75 Mar 9, 2024
c6f08fb
[dragon] add pinocchio simple sample
sugikazu75 Mar 9, 2024
08f9ca5
[dragon] add FK sample with casadi and pinocchio (hard coded)
sugikazu75 Mar 10, 2024
f6c3d9d
[dragon] update pinocchio robot model class. implemented rotor origin…
sugikazu75 Mar 11, 2024
3cbfdeb
[dragon] update to use floating base system. add real value calculati…
sugikazu75 Mar 12, 2024
c9c2a3a
[dragon] update pinocchio model. add ros interface, enable to calcula…
sugikazu75 Mar 13, 2024
e6139dd
[dragon] refactor pinocchio robot model node
sugikazu75 Mar 13, 2024
3ff697f
[aerial_robot_model] move pinocchio node to aerial_robot_model package
sugikazu75 Mar 14, 2024
f1d4fe8
[aerial_robot_model][pinocchio] fux only indent
sugikazu75 Mar 14, 2024
18c8af5
[aerial_robot_model][pinocchio] fix bug: add joint type for rotor Joi…
sugikazu75 Mar 14, 2024
5eb9dd4
[aerial_robot_model][pinochio] rosout joint and frame info
sugikazu75 Mar 14, 2024
10d2c9c
[aerial_robot_model][pinocchio] debug for CI
sugikazu75 Mar 14, 2024
d77833c
[aerial_robot_model][pinocchio] fix dependency
sugikazu75 Mar 14, 2024
0aa963d
[aerial_robot_model] fix package xml
sugikazu75 Mar 14, 2024
068e830
[aerial_robot_estimation] specify the namespace of array to avoid amb…
sugikazu75 Mar 16, 2024
ff3477e
[aerial_robot_model] fix CmakeList: depend on casadi_eigen and separa…
sugikazu75 Mar 16, 2024
a487cf2
[aerial_robot_model][pinocchio] rename header file
sugikazu75 Mar 16, 2024
df45bdb
[dragon] fix Cmakelist
sugikazu75 Mar 16, 2024
365b184
[aerial_robot_model] fix CmakeList for linter
sugikazu75 Mar 16, 2024
f23f65f
[aerial_robot_model][pinocchio] separate pinocchio robot model class …
sugikazu75 Mar 17, 2024
d2355d6
[aerial_robot_model][pinocchio] add accessors for private variables i…
sugikazu75 Mar 17, 2024
e37e8b2
[aerial_robot_model] separate desinition and implementation of common…
sugikazu75 Mar 25, 2024
2f3d506
[aerial_robot_model][pinocchio] enable to update robot model with var…
sugikazu75 Mar 26, 2024
8876fb0
[aerial_robot_model][pinocchio] add updateRobotModel function with so…
sugikazu75 Mar 26, 2024
db71077
[delta][control] workaround nonlinear wrench allocation with pinocchi…
sugikazu75 Mar 27, 2024
05ccd3a
[delta] add new robot type 20240319_mesh. its collision model is base…
sugikazu75 Mar 27, 2024
eee377d
[delta] visualize exerted wrench in cog frame in rviz
sugikazu75 Mar 27, 2024
536494b
[spinal] enable to set target angular velocity
sugikazu75 Apr 1, 2024
65d5d30
[delta][env] add alias rossetdelta to set rosmaster to real machine
sugikazu75 Apr 1, 2024
26b1f06
[delta][navigation] move navigation node in directory
sugikazu75 Apr 1, 2024
54ba7d3
[aerial_robot_control] publish pid message about roll and pitch in Po…
sugikazu75 Apr 2, 2024
8e06cd8
[delta][urdf] refactor urdf
sugikazu75 Apr 2, 2024
f7d4440
[aerial_robot_model][pinocchio] add mutex to access private variables
sugikazu75 Apr 3, 2024
13aa7d6
[aerial_robot_model][pinocchio] include mutex
sugikazu75 Apr 3, 2024
6668946
[delta] remove unused data
sugikazu75 Apr 8, 2024
130280b
[delta] remove unused scripts
sugikazu75 Apr 8, 2024
60a587c
[delta][control] add rosparam for nonlinear optimization constraints
sugikazu75 Apr 13, 2024
a14757d
[WIP][delta] add delta joint load calculation node
sugikazu75 May 17, 2024
bf3edbe
[WIP][delta] add interface for demos
sugikazu75 May 23, 2024
5d9a0dd
[WIP][delta] door opening demo
sugikazu75 May 26, 2024
1a69dc7
[delta][demo] add gimbal demo
sugikazu75 May 28, 2024
91bb7a9
[delta][model] comment in contact point calculation part in delta rob…
sugikazu75 Jun 4, 2024
4e8c5b9
[DO NOT MERGE] increase the threshold of failsafe for attitude control
sugikazu75 Jun 4, 2024
99f04c6
[delta] update gimbal servo reduction ratio (1 -> 1.5 2024/06/04)
sugikazu75 Jun 4, 2024
75eaa68
[WIP] update demo scripts
sugikazu75 Jun 12, 2024
2b262ec
[delta] update nonlinear optimization using joint angle as variable
sugikazu75 Jun 12, 2024
3bfa7b2
[delta][navigation] add interpolation part of attitude for down state
sugikazu75 Jun 12, 2024
52cd118
[delta][control] fix bug: fixed the gradient in QP problem
sugikazu75 Jun 17, 2024
eff3d4b
[WIP][delta] add simple mpc
sugikazu75 Jun 18, 2024
bff1b82
[delta][navigation] workaround to implement trajectory generation in …
sugikazu75 Jun 18, 2024
2d3cc67
[delta][control] fix QP constraint and add QP gradient to minimize je…
sugikazu75 Jun 24, 2024
a4635dd
[delta][control] consider gyro effect
sugikazu75 Jun 25, 2024
725cbf8
[delta][control] add function to print out debug information
sugikazu75 Jun 25, 2024
79543cb
[delta][control] add constraints about thrust limit in QP
sugikazu75 Jun 26, 2024
15309bb
[delta][control] use unfeasible solution when qp is not solved
sugikazu75 Jun 26, 2024
4a68beb
[delta][control] set primal solution to QP solver
sugikazu75 Jun 26, 2024
0421eab
[delta][control] fix bug: changed gradient to zero vector to stabiliz…
sugikazu75 Jun 26, 2024
42f66dc
[delta][navigation] refactor variable name and conditional branch
sugikazu75 Jun 26, 2024
cf0e8db
[delta][navigation] setprecision
sugikazu75 Jun 26, 2024
8ca322d
[delta] update door opening demo
sugikazu75 Jun 27, 2024
17cf996
[delta] spawn slope in gazebo
sugikazu75 Jun 27, 2024
bd68464
[delta][control] rosout if QP is not solved
sugikazu75 Jun 28, 2024
e97432a
[delta][navigation] update ground trajectory duration. real machine e…
sugikazu75 Jun 28, 2024
282c65f
[control][estimation] workaround to implement external wrench estimat…
sugikazu75 Jul 1, 2024
5c5f55d
[control] fixed process of getting orientation of cog in wrench estim…
sugikazu75 Jul 1, 2024
975f334
[delta][control] activate external wrench estimation for delta
sugikazu75 Jul 1, 2024
75c6ef3
[delta][control][model] remove unused frame real contact point
sugikazu75 Jul 2, 2024
e4157b7
[delta][control] remove unused feature about controlled axis
sugikazu75 Jul 3, 2024
41ada46
[delta][control] remove unused feature about attitude control in spin…
sugikazu75 Jul 3, 2024
42baa96
[control] publish estimated external wrench acting on cog
sugikazu75 Jul 3, 2024
a16d5dc
Revert "[WIP][delta] add simple mpc"
sugikazu75 Jul 3, 2024
655552b
[delta][control] remove unused part: package dependencies, nonlinear …
sugikazu75 Jul 3, 2024
f924fbf
[delta][control] fixed exerted wrench calculation
sugikazu75 Jul 3, 2024
ce67899
[delta][navigaton] add test node for trajectory
sugikazu75 Jul 4, 2024
37aa81c
[delta][model][control] add flag for gimbal planning in modeling and …
sugikazu75 Jul 4, 2024
f504461
[delta][model] create thread to calculate contact point
sugikazu75 Jul 4, 2024
3ec1b0e
[delta] add link3_end frame in urdf
sugikazu75 Jul 6, 2024
d0a8df0
[delta][control] enable to set gravity compensation weight independently
sugikazu75 Jul 8, 2024
257ac28
add new dependency to use patched ros_controllers
sugikazu75 Jul 8, 2024
19442ed
[delta][navigation] set estimated external wrench to navigator
sugikazu75 Jul 10, 2024
3618aab
[delta] publish aligned cog frame
sugikazu75 Jul 10, 2024
0174201
[delta][control] fix message in gimbal planning
sugikazu75 Jul 10, 2024
c123a41
[delta] update delta interface to send command from ipython
sugikazu75 Jul 11, 2024
0be06c0
[aerial_robot_control] fixed the method to get euler angle of cog in …
sugikazu75 Jul 16, 2024
7fe5067
[delta][control] publish initial gimbal angle when activated
sugikazu75 Jul 16, 2024
094c351
[delta][navigation] enable to start from rolling state by sending cur…
sugikazu75 Jul 16, 2024
98660ad
[delta][control] set weight for gravity compensation in rolling state…
sugikazu75 Jul 16, 2024
2fb51fc
[delta] use catkin_virtualenv for python environment
sugikazu75 Jul 17, 2024
b5755ec
[delta] update sign of joint for gear joint
sugikazu75 Jul 19, 2024
c457162
[delta] update servo config after rebasing #527
sugikazu75 Jul 19, 2024
7728949
[spinal] bug fix after rebasing #527
sugikazu75 Jul 19, 2024
f04034d
[WIP] add urdf
sugikazu75 Jul 22, 2024
b32022a
[delta] add new robot type
sugikazu75 Jul 22, 2024
66c8d09
[delta] remove unused robot type
sugikazu75 Jul 22, 2024
21317ae
[delta] update urdf model
sugikazu75 Jul 22, 2024
ee325d3
[delta] update bringup to use latest model
sugikazu75 Jul 22, 2024
0dfb273
Revert "[spinal][spine] add new api to set target servo position"
sugikazu75 Jul 25, 2024
4e35fa3
Revert "[spinal][flight_control] enable to turn dynamixel servo motor…
sugikazu75 Jul 25, 2024
a5f16a5
[delta][control] disable to calculate gimbal angle in flight controller
sugikazu75 Jul 25, 2024
04172bf
[delta][control] separate common methods in controller
sugikazu75 Jul 25, 2024
f6761e6
Revert "[spinal] enable to set target angular velocity"
sugikazu75 Jul 25, 2024
7cd96d6
[delta][control] add gradient based nonlinear wrench allocation for f…
sugikazu75 Jul 25, 2024
6a46898
[delta][model] changed API name about control frame
sugikazu75 Jul 25, 2024
9785148
[delta][control] separate method in ground control
sugikazu75 Jul 25, 2024
69c0d3a
[delta][control][WIP] implement gradient based nonlinear wrench alloc…
sugikazu75 Jul 26, 2024
59a2324
[delta] add gdb debug argument in bringup launch
sugikazu75 Jul 26, 2024
5b4db03
[delta][model] added try-catch when accessing control frame from map …
sugikazu75 Jul 28, 2024
45d0406
[delta][control] set flight SQP initial variable from the result of M…
sugikazu75 Jul 29, 2024
b958ae4
[delta][model] refactor updateRobotModelImpl
sugikazu75 Jul 30, 2024
08a79df
[delta][navigation] refactor baselink rotation process in navigation
sugikazu75 Jul 30, 2024
3ab70ef
[delta][control] add joint torque calculation
sugikazu75 Jul 31, 2024
179b36a
[delta][navigation] workaround to implement baselink rotation plannin…
sugikazu75 Jul 31, 2024
b6b866d
[delta][model] add mutex for contact point accessor
sugikazu75 Aug 1, 2024
3479d83
[delta][model] decrease the contact point calculate time (current tim…
sugikazu75 Aug 1, 2024
3234ba1
[delta][navigation] set desired baselink rotation as final state in t…
sugikazu75 Aug 1, 2024
3b39f5f
[delta][navigation] add joint ik solver and ros topic interface
sugikazu75 Aug 2, 2024
c2475f0
[delta][navigation] changed file structure. separate joint motion part
sugikazu75 Aug 2, 2024
325be79
[delta][control] activate nonlinear wrench allocation in ground mode
sugikazu75 Aug 2, 2024
3a121cf
[delta][navigation] set target baselink trajectory and desire coordin…
sugikazu75 Aug 5, 2024
7c0f07f
[delta] update bringup.launch and enable to test robot model around c…
sugikazu75 Aug 5, 2024
bb8d823
[delta][navigation] setprecision
sugikazu75 Aug 5, 2024
4c662b4
[delta] update transformation demo script
sugikazu75 Aug 5, 2024
65dc628
[delta][model] decrease contact point calculation time (now: 100us <)
sugikazu75 Aug 6, 2024
fa3c391
[delta][navigation] enable to plan baselink rotation w.r.t. other link
sugikazu75 Aug 8, 2024
be49984
[delta][model] measure time for updateRobotModel
sugikazu75 Aug 8, 2024
3de52df
[delta][navigation] workaround to implement full body inverse kinematics
sugikazu75 Aug 8, 2024
39b9a43
[delta][navigation] refactor file structure
sugikazu75 Aug 8, 2024
0702c5b
[aerial_robot_control][navigation] do not change xy control mode and …
sugikazu75 Aug 9, 2024
bac2663
[delta][control] refactor nonlinear optimization and add constraint f…
sugikazu75 Aug 17, 2024
494644a
[delta] add compile option for optimization
sugikazu75 Aug 19, 2024
0ef9892
[delta] enable to change main loop rate by launch argument
sugikazu75 Aug 19, 2024
661452c
[delta][control] add joint torque cost and constraint to ground contr…
sugikazu75 Aug 19, 2024
fd452ec
[delta] find OpenMP for eigen
sugikazu75 Aug 20, 2024
f94df31
[delta][navigation] refactor joy command process
sugikazu75 Aug 26, 2024
caeba99
[delta][planning] add subscriber to set ik relative target pos
sugikazu75 Aug 28, 2024
483a816
[delta][navigation] publish end effector target position w.r.t world …
sugikazu75 Aug 30, 2024
ee4dffb
[delta][navigation] enable yaw rotation in manipulation mode. fix bug…
sugikazu75 Sep 3, 2024
a2e6448
[delta][navigation] temporarily changed api to add target yaw for doo…
sugikazu75 Sep 4, 2024
0c6ec77
[delta][navigation] enable to set target rolling angle by not sending…
sugikazu75 Sep 6, 2024
f6d8ce8
[delta] enable util node for real machine
sugikazu75 Sep 6, 2024
37ee4d9
[delta][control] publish nlopt result
sugikazu75 Sep 6, 2024
948f089
[delta][control] devide primal variable of thrust by absolute value o…
sugikazu75 Sep 6, 2024
467411b
[delta][util] publish wrench on each thrusters
sugikazu75 Sep 10, 2024
313f0e5
[delta][simulation] removed unused sensor: gps
sugikazu75 Sep 17, 2024
c9a9e7d
[delta][navigation] add ros interface to handle motion mode
sugikazu75 Sep 17, 2024
beb4405
[delta][urdf] update joint parameter corresponding to real machine
sugikazu75 Sep 17, 2024
e4c0e76
[delta] remove unused argument of model test
sugikazu75 Sep 17, 2024
886b0fd
[delta] temporaliry deactivate battery from each link
sugikazu75 Sep 17, 2024
b09f4d9
[delta][script] add keyboard command script and update joy stick inst…
sugikazu75 Sep 17, 2024
9e47b74
[GA] skip catkin linter for ros_controllers
sugikazu75 Sep 17, 2024
7b59ca0
[delta] CMakeLists: install library to catkin package lib destination
sugikazu75 Sep 17, 2024
cb38ef6
[delta][package] resolve package dependencies
sugikazu75 Sep 17, 2024
6b29969
Revert "[delta] find OpenMP for eigen"
sugikazu75 Sep 17, 2024
3899c72
[delta] do not use catkin_virtualenv
sugikazu75 Sep 17, 2024
1e136b7
[delta] debug for CI
sugikazu75 Sep 17, 2024
3e1fe67
[delta][navigation] bug fix: add ros topic declaration in header file
sugikazu75 Sep 17, 2024
fa26ff7
Revert "[spinal] change interface of desire coord from DesireCoord to…
sugikazu75 Sep 17, 2024
186eb9a
[delta] return to message type of desire coordinate from Quaternion t…
sugikazu75 Sep 17, 2024
9774b9e
update third party repositry and add other repositry
sugikazu75 Sep 18, 2024
cbf6ffb
[GA] fix for catkin lint
sugikazu75 Sep 18, 2024
69b555a
[delta][navigation] added baselink rotation angular velocity for smo…
sugikazu75 Sep 26, 2024
3a6985a
[delta][navigation] implement steep estimator based on external wrenc…
sugikazu75 Sep 26, 2024
5d8ce4f
[delta][transform] fixed condition to print mode change message
sugikazu75 Sep 28, 2024
8d25409
[delta][control] changed print rate of nlopt failure
sugikazu75 Sep 28, 2024
046f6f5
[delta][control] removed gimbal neutral coordinate and changed frame …
sugikazu75 Sep 28, 2024
684c4e7
[delta][control] refactor nlopt log publish process
sugikazu75 Sep 28, 2024
8ea4e4f
[delta][control] workaround implement dynamic reconfigure server for …
sugikazu75 Oct 4, 2024
4d644c5
[delta] debug for CI
sugikazu75 Oct 7, 2024
14ea6ff
[delta] refactor urdf: separate fc and link2. link number can be changed
sugikazu75 Oct 10, 2024
93d242e
[delta][urdf] update urdf for egomotion estimation with livoxMID360
sugikazu75 Oct 16, 2024
5a44408
[delta][estimation] use livoxMID360 for egomotion estimation
sugikazu75 Oct 16, 2024
6b1cc04
[delta] update rviz config
sugikazu75 Oct 16, 2024
3f42940
[delta][estimation] add parameters to set height valid range for vo
sugikazu75 Oct 18, 2024
8d996fc
[delta][urdf] update urdf because position of processors is changed
sugikazu75 Oct 21, 2024
f2d396d
[delta] add a shell script to record rosbag except for /cloud_registe…
sugikazu75 Oct 21, 2024
c0ec687
[delta][urdf] remove unused variable baselink
sugikazu75 Oct 29, 2024
6afa37f
[delta][control] refactor controller
sugikazu75 Oct 24, 2024
bac8a33
[delta][control] use analytical contact force for joint torque calcul…
sugikazu75 Oct 24, 2024
6baa1cd
[delta][control] enable to add constraint about joint torque in aeria…
sugikazu75 Oct 25, 2024
8b5d11c
[delta][control] get gimbal angle limit
sugikazu75 Nov 5, 2024
ae6552a
[delta][control] condider joint angle limitation when resolving gimba…
sugikazu75 Nov 5, 2024
a0da852
[delta][control] send current gimbal angles when halt
sugikazu75 Nov 6, 2024
8e64291
[delta] display rosout to rviz
sugikazu75 Nov 11, 2024
2b4fd24
[delta][model] fix exception message
sugikazu75 Nov 5, 2024
645b3ae
[delta][navigation] enable to set target baselink attitude as current…
sugikazu75 Nov 5, 2024
787739d
[delta][control] set target baselink attitude as current state when o…
sugikazu75 Nov 5, 2024
8b32013
[delta][control] update baselink attitude as current state only when …
sugikazu75 Nov 12, 2024
7e50c67
[delta][joy] set joint angles to become circular form when L1 and R1 …
sugikazu75 Nov 14, 2024
f70a526
[delta][control] improve iniital variable calculation with osqp: cons…
sugikazu75 Nov 26, 2024
4d1e28b
[delta][control] enable to set ground attitude control threshold as r…
sugikazu75 Nov 27, 2024
75e5d2f
[control] enable to set joint torque limit to nonlinear optimization
sugikazu75 Oct 31, 2024
7c3eff5
[delta][control] clamp iniital variable by bounds
sugikazu75 Nov 27, 2024
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
2 changes: 1 addition & 1 deletion .github/workflows/catkin_lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,4 @@ jobs:
wstool init
wstool merge aerial_robot_noetic.rosinstall
wstool update
ROS_DISTRO=noetic catkin_lint --resolve-env --strict $PWD --skip-path kalman_filter --skip-path ublox_gps --skip-path aerial_robot_3rdparty --skip-path rosserial --skip-path livox_ros_driver2 --skip-path fast_lio --skip-path mocap_optitrack
ROS_DISTRO=noetic catkin_lint --resolve-env --strict $PWD --skip-path kalman_filter --skip-path ublox_gps --skip-path aerial_robot_3rdparty --skip-path rosserial --skip-path livox_ros_driver2 --skip-path fast_lio --skip-path mocap_optitrack --skip-path ros_controllers --skip-path casadi_catkin --skip-path casadi_eigen
1 change: 1 addition & 0 deletions aerial_robot/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
<exec_depend>aerial_robot_model</exec_depend>
<exec_depend>aerial_robot_msgs</exec_depend>
<exec_depend>aerial_robot_simulation</exec_depend>
<exec_depend>delta</exec_depend>
<exec_depend>dragon</exec_depend>
<exec_depend>hydrus</exec_depend>
<exec_depend>hydrus_xi</exec_depend>
Expand Down
7 changes: 4 additions & 3 deletions aerial_robot_control/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -88,20 +88,21 @@ target_link_libraries (trajectory_generation ${catkin_LIBRARIES})
add_executable(trajectory_generation_node src/trajectory/test.cpp)
target_link_libraries (trajectory_generation_node ${catkin_LIBRARIES} trajectory_generation)


add_executable(motor_power_publisher src/util/motor_power_publisher.cpp)
target_link_libraries(motor_power_publisher ${catkin_LIBRARIES})

install(DIRECTORY include/${PROJECT_NAME}/
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION})

install(TARGETS control_utils flight_control_pluginlib flight_navigation trajectory_generation
install(TARGETS control_utils flight_control_pluginlib flight_navigation motor_power_publisher trajectory_generation
DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
)

install(TARGETS trajectory_generation_node
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

install(DIRECTORY scripts plugins
install(DIRECTORY launch scripts plugins
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
USE_SOURCE_PERMISSIONS
)
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
#include <aerial_robot_control/control/base/base.h>
#include <aerial_robot_control/control/utils/pid.h>
#include <aerial_robot_control/PIDConfig.h>
#include <aerial_robot_estimation/sensor/imu.h>
#include <aerial_robot_msgs/DynamicReconfigureLevels.h>
#include <aerial_robot_msgs/PoseControlPid.h>
#include <angles/angles.h>
Expand All @@ -56,7 +57,8 @@ namespace aerial_robot_control
{
public:
PoseLinearController();
virtual ~PoseLinearController() = default;
virtual ~PoseLinearController();

void virtual initialize(ros::NodeHandle nh,
ros::NodeHandle nhp,
boost::shared_ptr<aerial_robot_model::RobotModel> robot_model,
Expand All @@ -67,8 +69,20 @@ namespace aerial_robot_control
virtual bool update() override;
virtual void reset() override;

const Eigen::VectorXd getTargetWrenchAccCog()
{
std::lock_guard<std::mutex> lock(wrench_mutex_);
return target_wrench_acc_cog_;
}
void setTargetWrenchAccCog(const Eigen::VectorXd target_wrench_acc_cog)
{
std::lock_guard<std::mutex> lock(wrench_mutex_);
target_wrench_acc_cog_ = target_wrench_acc_cog;
}

protected:
ros::Publisher pid_pub_;
ros::Publisher estimate_external_wrench_pub_;

std::vector<PID> pid_controllers_;
std::vector<boost::shared_ptr<PidControlDynamicConfig> > pid_reconf_servers_;
Expand All @@ -88,11 +102,26 @@ namespace aerial_robot_control
tf::Vector3 rpy_, target_rpy_;
tf::Vector3 omega_, target_omega_;

std::string tf_prefix_;
std::mutex wrench_mutex_;
boost::thread wrench_estimate_thread_;
Eigen::VectorXd init_sum_momentum_;
Eigen::VectorXd est_external_wrench_;
Eigen::VectorXd est_external_wrench_cog_;
Eigen::MatrixXd momentum_observer_matrix_;
Eigen::VectorXd integrate_term_;
double prev_est_wrench_timestamp_;
bool wrench_estimate_flag_;
Eigen::VectorXd target_wrench_acc_cog_;

virtual void controlCore();
virtual void sendCmd();


void cfgPidCallback(aerial_robot_control::PIDConfig &config, uint32_t level, std::vector<int> controller_indices);
void startWrenchEstimation();
virtual void externalWrenchEstimate();

};

};
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,8 @@ namespace aerial_robot_control
const double limit_err_p = 1e6, const double limit_err_i = 1e6, const double limit_err_d = 1e6):
name_(name), result_(0), err_p_(0), err_i_(0), err_i_prev_(0), err_d_(0),
target_p_(0), target_d_(0), val_p_(0), val_d_(0),
p_term_(0), i_term_(0), d_term_(0)
p_term_(0), i_term_(0), d_term_(0),
err_i_update_flag_(true)
{
setGains(p_gain, i_gain, d_gain);
setLimits(limit_sum, limit_p, limit_i, limit_d, limit_err_p, limit_err_i, limit_err_d);
Expand All @@ -64,7 +65,7 @@ namespace aerial_robot_control
{
err_p_ = clamp(err_p, -limit_err_p_, limit_err_p_);
err_i_prev_ = err_i_;
err_i_ = clamp(err_i_ + err_p_ * du, -limit_err_i_, limit_err_i_);
if(err_i_update_flag_) err_i_ = clamp(err_i_ + err_p_ * du, -limit_err_i_, limit_err_i_);
err_d_ = clamp(err_d, -limit_err_d_, limit_err_d_);

p_term_ = clamp(err_p_ * p_gain_, -limit_p_, limit_p_);
Expand All @@ -81,6 +82,7 @@ namespace aerial_robot_control
err_i_ = 0;
err_i_prev_ = 0;
result_ = 0;
err_i_update_flag_ = true;
}

const double& getPGain() const { return p_gain_; }
Expand All @@ -89,6 +91,15 @@ namespace aerial_robot_control

void setPGain(const double p_gain) { p_gain_ = p_gain; }
void setIGain(const double i_gain) { i_gain_ = i_gain; }
void setIGainHoldingTerm(const double i_gain)
{
if(i_gain == 0) return;
else
{
err_i_ = err_i_ * i_gain_ / i_gain;
i_gain_ = i_gain;
}
}
void setDGain(const double d_gain) { d_gain_ = d_gain; }

void setGains(const double p_gain, const double i_gain, const double d_gain)
Expand All @@ -103,6 +114,8 @@ namespace aerial_robot_control
const double& getLimitP() const { return limit_p_; }
const double& getLimitI() const { return limit_i_; }
const double& getLimitD() const { return limit_d_; }
void setTargetP(const double target_p) {target_p_ = target_p; }
void setTargetD(const double target_d) {target_d_ = target_d; }
void setLimitSum(const double limit_sum) {limit_sum_ = limit_sum; }
void setLimitP(const double limit_p) {limit_p_ = limit_p; }
void setLimitI(const double limit_i) {limit_i_ = limit_i; }
Expand All @@ -128,11 +141,19 @@ namespace aerial_robot_control
const double& getErrD() const { return err_d_; }
void setErrP(const double err_p) { err_p_ = err_p; }
void setErrI(const double err_i) { err_i_ = err_i; }
void setITerm(const double i_term)
{
i_term_ = i_term;
if(err_i_update_flag_ && i_gain_ != 0) err_i_ = i_term / i_gain_;
}

const double& getPTerm() const { return p_term_; }
const double& getITerm() const { return i_term_; }
const double& getDTerm() const { return d_term_; }

void setErrIUpdateFlag(bool flag) {err_i_update_flag_ = flag;}
bool getErrIUpdateFlag() {return err_i_update_flag_;}

protected:

std::string name_;
Expand All @@ -144,6 +165,7 @@ namespace aerial_robot_control
double limit_err_p_, limit_err_i_, limit_err_d_;
double target_p_, target_d_;
double val_p_, val_d_;
bool err_i_update_flag_;
};

};
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ namespace aerial_robot_navigation
inline void setTargetYaw(float value) { target_rpy_.setZ(value); }
inline void addTargetYaw(float value) { setTargetYaw(angles::normalize_angle(target_rpy_.z() + value)); }
inline void setTargetOmegaZ(float value) { target_omega_.setZ(value); }
inline void setTargetRPY(tf::Vector3 value) { target_rpy_ = value; }
inline void setTargetAngAcc(tf::Vector3 acc) { target_ang_acc_ = acc; }
inline void setTargetAngAcc(double x, double y, double z) { setTargetAngAcc(tf::Vector3(x, y, z)); }
inline void setTargetZeroAngAcc() { setTargetAngAcc(tf::Vector3(0,0,0)); }
Expand Down Expand Up @@ -361,7 +362,7 @@ namespace aerial_robot_navigation
land_height_ = 0;
}

void startTakeoff()
virtual void startTakeoff()
{
if(getNaviState() == TAKEOFF_STATE) return;

Expand Down Expand Up @@ -557,7 +558,11 @@ namespace aerial_robot_navigation

void setTargetYawFromCurrentState()
{
double yaw = estimator_->getState(State::YAW_COG, estimate_mode_)[0];
tf::Quaternion cog2baselink_rot;
tf::quaternionKDLToTF(robot_model_->getCogDesireOrientation<KDL::Rotation>(), cog2baselink_rot);
tf::Matrix3x3 cog_rot = estimator_->getOrientation(Frame::BASELINK, estimate_mode_) * tf::Matrix3x3(cog2baselink_rot).inverse();
double r, p, y; cog_rot.getRPY(r, p, y);
double yaw = y;
setTargetYaw(yaw);

// set the velocty to zero
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#pragma once

#include <ros/ros.h>
#include <spinal/PwmInfo.h>
#include <spinal/MotorInfo.h>
#include <spinal/Pwms.h>
#include <std_msgs/Float32.h>
#include <std_msgs/Float32MultiArray.h>

class motorPowerPublisher
{
public:
ros::NodeHandle nh_;
ros::NodeHandle nhp_;
ros::Publisher motor_currencies_pub_;
ros::Publisher motor_power_pub_;
ros::Subscriber motor_pwms_sub_;
ros::Subscriber battery_voltage_sub_;
ros::Timer timer_;

std::vector<float> motor_currencies_;
std::vector<double> voltages_;
std::vector<std::vector<double>> motor_infos_;
std::vector<int> motor_pwms_;
double battery_voltage_;

motorPowerPublisher(ros::NodeHandle nh, ros::NodeHandle nhp);
virtual ~motorPowerPublisher() = default;

void motorPwmsCallback(const spinal::PwmsPtr& msg);
void batteryVoltageStatusCallback(const std_msgs::Float32Ptr& msg);
void timerCallback(const ros::TimerEvent& e);
void rosParamInit();

template<class T> void getParam(ros::NodeHandle nh, std::string param_name, T& param, T default_value)
{
nh.param<T>(param_name, param, default_value);
}

};
11 changes: 11 additions & 0 deletions aerial_robot_control/launch/motor_power.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<launch>
<arg name="robot_ns" default=""/>
<arg name="config_path" default=""/>

<node pkg="aerial_robot_control" type="motor_power_publisher" name="motor_power_publisher" ns="$(arg robot_ns)" output="screen"/>
<group ns="$(arg robot_ns)">
<rosparam file="$(arg config_path)" command="load"/>
</group>

</launch>
Loading