Skip to content

Commit 43cdbf8

Browse files
committed
fix #435
1 parent 6a0dd71 commit 43cdbf8

File tree

9 files changed

+126
-7
lines changed

9 files changed

+126
-7
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
{
2+
"Os": [ "Darwin" ],
3+
"mode": 2,
4+
"stick": {
5+
"Left": {
6+
"UD": {
7+
"index": 1,
8+
"average": false,
9+
"valueInverse": true,
10+
"conversion": {
11+
"paramA": 0.9,
12+
"paramB": 0.1,
13+
"paramC": 0.0
14+
}
15+
},
16+
"LR": {
17+
"index": 0,
18+
"average": false,
19+
"valueInverse": false,
20+
"conversion": {
21+
"paramA": 0.9,
22+
"paramB": 0.1,
23+
"paramC": 0.0
24+
}
25+
}
26+
},
27+
"Right": {
28+
"UD": {
29+
"index": 3,
30+
"average": false,
31+
"valueInverse": true,
32+
"conversion": {
33+
"paramA": 0.9,
34+
"paramB": 0.1,
35+
"paramC": 0.0
36+
}
37+
},
38+
"LR": {
39+
"index": 2,
40+
"average": false,
41+
"valueInverse": false,
42+
"conversion": {
43+
"paramA": 0.9,
44+
"paramB": 0.1,
45+
"paramC": 0.0
46+
}
47+
}
48+
}
49+
},
50+
"Event": {
51+
"RadioControlEnable": {
52+
"index": 0,
53+
"type": "switch",
54+
"off": "up",
55+
"on": "down"
56+
},
57+
"Camera": {
58+
"index": 2,
59+
"type": "switch",
60+
"off": "up",
61+
"on": "down"
62+
},
63+
"GrabBaggage": {
64+
"index": 1,
65+
"type": "toggle",
66+
"off": "up",
67+
"on": "down"
68+
},
69+
"CameraMoveUp": {
70+
"index": 11,
71+
"type": "switch",
72+
"off": "up",
73+
"on": "down"
74+
},
75+
"CameraMoveDown": {
76+
"index": 12,
77+
"type": "switch",
78+
"off": "up",
79+
"on": "down"
80+
},
81+
"ReturnHome": {
82+
"index": 3,
83+
"type": "switch",
84+
"off": "up",
85+
"on": "down"
86+
}
87+
}
88+
}

drone_control/config/param-api-mixer.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ PID_POS_VY_Kd 1.0
4242
HEAD_CONTROL_CYCLE 0.0
4343
ANGULAR_CONTROL_CYCLE 0.0
4444
ANGULAR_RATE_CONTROL_CYCLE 0.0
45-
PID_POS_MAX_ROLL 30.0
46-
PID_POS_MAX_PITCH 30.0
45+
PID_POS_MAX_ROLL 25.0
46+
PID_POS_MAX_PITCH 25.0
4747
PID_ROLL_RPM_MAX 200.0
4848
PID_PITCH_RPM_MAX 200.0
4949
PID_ROLL_TORQUE_MAX 100.0

hakoniwa/src/modules/hako_ext.cpp

+6-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ void hako_ext_main(bool master)
2828
std::cerr << "ERROR: can not find drone config file on " << drone_config_directory << std::endl;
2929
return;
3030
}
31+
int max_delay_time_usec;
32+
if (hako_param_env_get_integer(HAKO_MAXDELAY_TIME_USEC, &max_delay_time_usec) == false) {
33+
HAKO_ABORT("Failed to get HAKO_MAXDELAY_TIME_USEC");
34+
}
35+
std::cout << "INFO: max_delay_time_usec: " << max_delay_time_usec << std::endl;
3136

3237
CsvLogger::enable();
3338
DroneConfig drone_config;
@@ -43,7 +48,7 @@ void hako_ext_main(bool master)
4348
else {
4449
std::cout << "INFO: hako_master_init() success" << std::endl;
4550
}
46-
hako_master_set_config_simtime((drone_config.getSimTimeStep()*1000000), (drone_config.getSimTimeStep()*1000000));
51+
hako_master_set_config_simtime((drone_config.getSimTimeStep()*1000000), (hako_time_t)max_delay_time_usec);
4752

4853

4954
try {

hakoniwa/src/modules/hako_phys.cpp

+6-1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,11 @@ void hako_phys_main()
3333
std::cerr << "ERROR: can not find drone config file on " << drone_config_path << std::endl;
3434
return;
3535
}
36+
int max_delay_time_usec;
37+
if (hako_param_env_get_integer(HAKO_MAXDELAY_TIME_USEC, &max_delay_time_usec) == false) {
38+
HAKO_ABORT("Failed to get HAKO_MAXDELAY_TIME_USEC");
39+
}
40+
std::cout << "INFO: max_delay_time_usec: " << max_delay_time_usec << std::endl;
3641
CsvLogger::enable();
3742
DroneConfig drone_config;
3843
if (drone_config_manager.getConfig(0, drone_config) == false) {
@@ -46,7 +51,7 @@ void hako_phys_main()
4651
else {
4752
std::cout << "INFO: hako_master_init() success" << std::endl;
4853
}
49-
hako_master_set_config_simtime((drone_config.getSimTimeStep()*1000000), (drone_config.getSimTimeStep()*1000000));
54+
hako_master_set_config_simtime((drone_config.getSimTimeStep()*1000000), (hako_time_t)max_delay_time_usec);
5055
try {
5156
std::thread thread(hako_px4_master_thread_run, (void*)nullptr);
5257
thread.detach();

hakoniwa/src/modules/hako_pid.cpp

+6-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ void hako_pid_main(bool master)
2828
std::cerr << "ERROR: can not find drone config file on " << drone_config_directory << std::endl;
2929
return;
3030
}
31+
int max_delay_time_usec;
32+
if (hako_param_env_get_integer(HAKO_MAXDELAY_TIME_USEC, &max_delay_time_usec) == false) {
33+
HAKO_ABORT("Failed to get HAKO_MAXDELAY_TIME_USEC");
34+
}
35+
std::cout << "INFO: max_delay_time_usec: " << max_delay_time_usec << std::endl;
3136

3237
CsvLogger::enable();
3338
DroneConfig drone_config;
@@ -43,7 +48,7 @@ void hako_pid_main(bool master)
4348
else {
4449
std::cout << "INFO: hako_master_init() success" << std::endl;
4550
}
46-
hako_master_set_config_simtime((drone_config.getSimTimeStep()*1000000), (drone_config.getSimTimeStep()*1000000));
51+
hako_master_set_config_simtime((drone_config.getSimTimeStep()*1000000), (hako_time_t)max_delay_time_usec);
4752

4853

4954
try {

hakoniwa/src/modules/hako_replay.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ void hako_replay_main(bool master)
2727
std::cerr << "ERROR: can not find drone config file on " << drone_config_directory << std::endl;
2828
return;
2929
}
30+
int max_delay_time_usec;
31+
if (hako_param_env_get_integer(HAKO_MAXDELAY_TIME_USEC, &max_delay_time_usec) == false) {
32+
HAKO_ABORT("Failed to get HAKO_MAXDELAY_TIME_USEC");
33+
}
34+
std::cout << "INFO: max_delay_time_usec: " << max_delay_time_usec << std::endl;
3035

3136
DroneConfig drone_config;
3237
if (drone_config_manager.getConfig(0, drone_config) == false) {

hakoniwa/src/modules/hako_sim.cpp

+7-1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,12 @@ void hako_sim_main(bool master, hako::px4::comm::IcommEndpointType serverEndpoin
3535
std::cerr << "ERROR: can not find drone config file on " << drone_config_directory << std::endl;
3636
return;
3737
}
38+
int max_delay_time_usec;
39+
if (hako_param_env_get_integer(HAKO_MAXDELAY_TIME_USEC, &max_delay_time_usec) == false) {
40+
HAKO_ABORT("Failed to get HAKO_MAXDELAY_TIME_USEC");
41+
}
42+
std::cout << "INFO: max_delay_time_usec: " << max_delay_time_usec << std::endl;
43+
3844
hako::px4::comm::TcpServer server;
3945
DroneConfig drone_config;
4046
if (drone_config_manager.getConfig(0, drone_config) == false) {
@@ -49,7 +55,7 @@ void hako_sim_main(bool master, hako::px4::comm::IcommEndpointType serverEndpoin
4955
else {
5056
std::cout << "INFO: hako_master_init() success" << std::endl;
5157
}
52-
hako_master_set_config_simtime((drone_config.getSimTimeStep()*1000000), (drone_config.getSimTimeStep()*1000000));
58+
hako_master_set_config_simtime((drone_config.getSimTimeStep()*1000000), (hako_time_t)max_delay_time_usec);
5359

5460
try {
5561
std::thread thread(hako_px4_master_thread_run, (void*)nullptr);

hakoniwa/src/utils/hako_params.cpp

+5-1
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,16 @@ static HakoParamStringType hako_param_string[HAKO_PARAM_STRING_NUM] = {
3232
"../config"
3333
},
3434
};
35-
#define HAKO_PARAM_INTEGER_NUM 1
35+
#define HAKO_PARAM_INTEGER_NUM 2
3636
static HakoParamIntegerType hako_param_integer[HAKO_PARAM_INTEGER_NUM] = {
3737
{
3838
HAKO_BYPASS_PORTNO,
3939
54001
4040
},
41+
{
42+
HAKO_MAXDELAY_TIME_USEC,
43+
20000 // 20msec
44+
},
4145
};
4246

4347
void hako_param_env_init()

hakoniwa/src/utils/hako_params.hpp

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
* integer params
1414
*/
1515
#define HAKO_BYPASS_PORTNO "HAKO_BYPASS_PORTNO"
16+
#define HAKO_MAXDELAY_TIME_USEC "HAKO_MAXDELAY_TIME_USEC"
1617

1718
extern void hako_param_env_init();
1819
extern const char* hako_param_env_get_string(const char* param_name);

0 commit comments

Comments
 (0)