Skip to content

Commit aa16dbb

Browse files
committed
merge branch main into autoware_msg
Signed-off-by: liu cui <cynthia.liu@autocore.ai>
2 parents 1e6da0c + b779f84 commit aa16dbb

File tree

5 files changed

+111
-78
lines changed

5 files changed

+111
-78
lines changed

.pre-commit-config.yaml

+9-9
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ ci:
33

44
repos:
55
- repo: https://github.com/pre-commit/pre-commit-hooks
6-
rev: v4.6.0
6+
rev: v4.4.0
77
hooks:
88
- id: check-json
99
- id: check-merge-conflict
@@ -18,18 +18,18 @@ repos:
1818
args: [--markdown-linebreak-ext=md]
1919

2020
- repo: https://github.com/igorshubovych/markdownlint-cli
21-
rev: v0.39.0
21+
rev: v0.33.0
2222
hooks:
2323
- id: markdownlint
2424
args: [-c, .markdownlint.yaml, --fix]
2525

2626
- repo: https://github.com/pre-commit/mirrors-prettier
27-
rev: v4.0.0-alpha.8
27+
rev: v3.0.0-alpha.6
2828
hooks:
2929
- id: prettier
3030

3131
- repo: https://github.com/adrienverge/yamllint
32-
rev: v1.35.1
32+
rev: v1.30.0
3333
hooks:
3434
- id: yamllint
3535

@@ -44,29 +44,29 @@ repos:
4444
- id: sort-package-xml
4545

4646
- repo: https://github.com/shellcheck-py/shellcheck-py
47-
rev: v0.10.0.1
47+
rev: v0.9.0.2
4848
hooks:
4949
- id: shellcheck
5050

5151
- repo: https://github.com/scop/pre-commit-shfmt
52-
rev: v3.8.0-1
52+
rev: v3.6.0-2
5353
hooks:
5454
- id: shfmt
5555
args: [-w, -s, -i=4]
5656

5757
- repo: https://github.com/pycqa/isort
58-
rev: 5.13.2
58+
rev: 5.12.0
5959
hooks:
6060
- id: isort
6161

6262
- repo: https://github.com/psf/black
63-
rev: 24.4.0
63+
rev: 23.3.0
6464
hooks:
6565
- id: black
6666
args: [--line-length=100]
6767

6868
- repo: https://github.com/pre-commit/mirrors-clang-format
69-
rev: v18.1.3
69+
rev: v16.0.0
7070
hooks:
7171
- id: clang-format
7272
types_or: [c++, c, cuda]

build_depends.repos

+4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@ repositories:
33
type: git
44
url: https://github.com/autowarefoundation/autoware_msgs.git
55
version: main
6+
core/autoware_internal_msgs:
7+
type: git
8+
url: https://github.com/autowarefoundation/autoware_internal_msgs.git
9+
version: main
610
core/common:
711
type: git
812
url: https://github.com/autowarefoundation/autoware_common.git

pacmod_interface/include/pacmod_interface/pacmod_interface.hpp

+25-28
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,6 @@
4545
#include <tier4_vehicle_msgs/msg/steering_wheel_status_stamped.hpp>
4646
#include <tier4_vehicle_msgs/msg/vehicle_emergency_stamped.hpp>
4747

48-
#include <message_filters/subscriber.h>
49-
#include <message_filters/sync_policies/approximate_time.h>
50-
#include <message_filters/synchronizer.h>
51-
5248
#include <algorithm>
5349
#include <cmath>
5450
#include <cstdlib>
@@ -66,12 +62,6 @@ class PacmodInterface : public rclcpp::Node
6662
PacmodInterface();
6763

6864
private:
69-
typedef message_filters::sync_policies::ApproximateTime<
70-
pacmod3_msgs::msg::SystemRptFloat, pacmod3_msgs::msg::WheelSpeedRpt,
71-
pacmod3_msgs::msg::SystemRptFloat, pacmod3_msgs::msg::SystemRptFloat,
72-
pacmod3_msgs::msg::SystemRptInt, pacmod3_msgs::msg::SystemRptInt, pacmod3_msgs::msg::GlobalRpt>
73-
PacmodFeedbacksSyncPolicy;
74-
7565
/* subscribers */
7666
// From Autoware
7767
rclcpp::Subscription<autoware_control_msgs::msg::Control>::SharedPtr
@@ -87,16 +77,13 @@ class PacmodInterface : public rclcpp::Node
8777
// From Pacmod
8878
rclcpp::Subscription<pacmod3_msgs::msg::SystemRptInt>::SharedPtr rear_door_rpt_sub_;
8979

90-
std::unique_ptr<message_filters::Subscriber<pacmod3_msgs::msg::SystemRptFloat>>
91-
steer_wheel_rpt_sub_;
92-
std::unique_ptr<message_filters::Subscriber<pacmod3_msgs::msg::WheelSpeedRpt>>
93-
wheel_speed_rpt_sub_;
94-
std::unique_ptr<message_filters::Subscriber<pacmod3_msgs::msg::SystemRptFloat>> accel_rpt_sub_;
95-
std::unique_ptr<message_filters::Subscriber<pacmod3_msgs::msg::SystemRptFloat>> brake_rpt_sub_;
96-
std::unique_ptr<message_filters::Subscriber<pacmod3_msgs::msg::SystemRptInt>> shift_rpt_sub_;
97-
std::unique_ptr<message_filters::Subscriber<pacmod3_msgs::msg::SystemRptInt>> turn_rpt_sub_;
98-
std::unique_ptr<message_filters::Subscriber<pacmod3_msgs::msg::GlobalRpt>> global_rpt_sub_;
99-
std::unique_ptr<message_filters::Synchronizer<PacmodFeedbacksSyncPolicy>> pacmod_feedbacks_sync_;
80+
rclcpp::Subscription<pacmod3_msgs::msg::SystemRptFloat>::SharedPtr steer_wheel_rpt_sub_;
81+
rclcpp::Subscription<pacmod3_msgs::msg::WheelSpeedRpt>::SharedPtr wheel_speed_rpt_sub_;
82+
rclcpp::Subscription<pacmod3_msgs::msg::SystemRptFloat>::SharedPtr accel_rpt_sub_;
83+
rclcpp::Subscription<pacmod3_msgs::msg::SystemRptFloat>::SharedPtr brake_rpt_sub_;
84+
rclcpp::Subscription<pacmod3_msgs::msg::SystemRptInt>::SharedPtr shift_rpt_sub_;
85+
rclcpp::Subscription<pacmod3_msgs::msg::SystemRptInt>::SharedPtr turn_rpt_sub_;
86+
rclcpp::Subscription<pacmod3_msgs::msg::GlobalRpt>::SharedPtr global_rpt_sub_;
10087

10188
/* publishers */
10289
// To Pacmod
@@ -129,6 +116,14 @@ class PacmodInterface : public rclcpp::Node
129116
/* ros param */
130117
std::string base_frame_id_;
131118
int command_timeout_ms_; // vehicle_cmd timeout [ms]
119+
bool is_steer_wheel_rpt_received_ = false;
120+
bool is_wheel_speed_rpt_received_ = false;
121+
bool is_accel_rpt_received_ = false;
122+
bool is_brake_rpt_received_ = false;
123+
bool is_shift_rpt_received_ = false;
124+
bool is_turn_rpt_received_ = false;
125+
bool is_global_rpt_received_ = false;
126+
132127
bool is_pacmod_rpt_received_ = false;
133128
bool is_pacmod_enabled_ = false;
134129
bool is_clear_override_needed_ = false;
@@ -206,17 +201,19 @@ class PacmodInterface : public rclcpp::Node
206201
const autoware_vehicle_msgs::msg::HazardLightsCommand::ConstSharedPtr msg);
207202
void callbackEngage(const autoware_vehicle_msgs::msg::Engage::ConstSharedPtr msg);
208203
void callbackRearDoor(const pacmod3_msgs::msg::SystemRptInt::ConstSharedPtr rear_door_rpt);
209-
void callbackPacmodRpt(
210-
const pacmod3_msgs::msg::SystemRptFloat::ConstSharedPtr steer_wheel_rpt,
211-
const pacmod3_msgs::msg::WheelSpeedRpt::ConstSharedPtr wheel_speed_rpt,
212-
const pacmod3_msgs::msg::SystemRptFloat::ConstSharedPtr accel_rpt,
213-
const pacmod3_msgs::msg::SystemRptFloat::ConstSharedPtr brake_rpt,
214-
const pacmod3_msgs::msg::SystemRptInt::ConstSharedPtr gear_cmd_rpt,
215-
const pacmod3_msgs::msg::SystemRptInt::ConstSharedPtr turn_rpt,
216-
const pacmod3_msgs::msg::GlobalRpt::ConstSharedPtr global_rpt);
204+
void callbackSteerWheelRpt(
205+
const pacmod3_msgs::msg::SystemRptFloat::ConstSharedPtr steer_wheel_rpt);
206+
void callbackWheelSpeedRpt(
207+
const pacmod3_msgs::msg::WheelSpeedRpt::ConstSharedPtr wheel_speed_rpt);
208+
void callbackAccelRpt(const pacmod3_msgs::msg::SystemRptFloat::ConstSharedPtr accel_rpt);
209+
void callbackBrakeRpt(const pacmod3_msgs::msg::SystemRptFloat::ConstSharedPtr brake_rpt);
210+
void callbackGearRpt(const pacmod3_msgs::msg::SystemRptInt::ConstSharedPtr gear_rpt);
211+
void callbackTurnRpt(const pacmod3_msgs::msg::SystemRptInt::ConstSharedPtr turn_rpt);
212+
void callbackGlobalRpt(const pacmod3_msgs::msg::GlobalRpt::ConstSharedPtr global_rpt);
217213

218214
/* functions */
219215
void publishCommands();
216+
void publishVehicleStatus();
220217
double calculateVehicleVelocity(
221218
const pacmod3_msgs::msg::WheelSpeedRpt & wheel_speed_rpt,
222219
const pacmod3_msgs::msg::SystemRptInt & shift_rpt);

pacmod_interface/launch/pacmod_steer_test.launch.xml

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
<arg name="vehicle_model" description="vehicle model name"/>
66
<arg name="pacmod_param_path" default="$(find-pkg-share pacmod_interface)/config/pacmod_steer_test.param.yaml"/>
7+
<arg name="socketcan_device" default="canVehicle"/>
78

89
<!-- vehicle info param -->
910
<include file="$(find-pkg-share global_parameter_loader)/launch/global_params.launch.py">
@@ -17,6 +18,9 @@
1718

1819
<!-- pacmod3 -->
1920
<group>
20-
<include file="$(find-pkg-share $(var vehicle_model)_description)/launch/pacmod3.launch.py"/>
21+
<include file="$(find-pkg-share pacmod3)/launch/pacmod3.launch.xml">
22+
<arg name="use_socketcan" value="true"/>
23+
<arg name="socketcan_device" value="$(var socketcan_device)"/>
24+
</include>
2125
</group>
2226
</launch>

pacmod_interface/src/pacmod_interface/pacmod_interface.cpp

+68-40
Original file line numberDiff line numberDiff line change
@@ -96,32 +96,20 @@ PacmodInterface::PacmodInterface()
9696
rear_door_rpt_sub_ = create_subscription<pacmod3_msgs::msg::SystemRptInt>(
9797
"/pacmod/rear_pass_door_rpt", 1, std::bind(&PacmodInterface::callbackRearDoor, this, _1));
9898

99-
steer_wheel_rpt_sub_ =
100-
std::make_unique<message_filters::Subscriber<pacmod3_msgs::msg::SystemRptFloat>>(
101-
this, "/pacmod/steering_rpt");
102-
wheel_speed_rpt_sub_ =
103-
std::make_unique<message_filters::Subscriber<pacmod3_msgs::msg::WheelSpeedRpt>>(
104-
this, "/pacmod/wheel_speed_rpt");
105-
accel_rpt_sub_ = std::make_unique<message_filters::Subscriber<pacmod3_msgs::msg::SystemRptFloat>>(
106-
this, "/pacmod/accel_rpt");
107-
brake_rpt_sub_ = std::make_unique<message_filters::Subscriber<pacmod3_msgs::msg::SystemRptFloat>>(
108-
this, "/pacmod/brake_rpt");
109-
shift_rpt_sub_ = std::make_unique<message_filters::Subscriber<pacmod3_msgs::msg::SystemRptInt>>(
110-
this, "/pacmod/shift_rpt");
111-
turn_rpt_sub_ = std::make_unique<message_filters::Subscriber<pacmod3_msgs::msg::SystemRptInt>>(
112-
this, "/pacmod/turn_rpt");
113-
global_rpt_sub_ = std::make_unique<message_filters::Subscriber<pacmod3_msgs::msg::GlobalRpt>>(
114-
this, "/pacmod/global_rpt");
115-
116-
pacmod_feedbacks_sync_ =
117-
std::make_unique<message_filters::Synchronizer<PacmodFeedbacksSyncPolicy>>(
118-
PacmodFeedbacksSyncPolicy(10), *steer_wheel_rpt_sub_, *wheel_speed_rpt_sub_, *accel_rpt_sub_,
119-
*brake_rpt_sub_, *shift_rpt_sub_, *turn_rpt_sub_, *global_rpt_sub_);
120-
121-
pacmod_feedbacks_sync_->registerCallback(std::bind(
122-
&PacmodInterface::callbackPacmodRpt, this, std::placeholders::_1, std::placeholders::_2,
123-
std::placeholders::_3, std::placeholders::_4, std::placeholders::_5, std::placeholders::_6,
124-
std::placeholders::_7));
99+
steer_wheel_rpt_sub_ = create_subscription<pacmod3_msgs::msg::SystemRptFloat>(
100+
"/pacmod/steering_rpt", 1, std::bind(&PacmodInterface::callbackSteerWheelRpt, this, _1));
101+
wheel_speed_rpt_sub_ = create_subscription<pacmod3_msgs::msg::WheelSpeedRpt>(
102+
"/pacmod/wheel_speed_rpt", 1, std::bind(&PacmodInterface::callbackWheelSpeedRpt, this, _1));
103+
accel_rpt_sub_ = create_subscription<pacmod3_msgs::msg::SystemRptFloat>(
104+
"/pacmod/accel_rpt", 1, std::bind(&PacmodInterface::callbackAccelRpt, this, _1));
105+
brake_rpt_sub_ = create_subscription<pacmod3_msgs::msg::SystemRptFloat>(
106+
"/pacmod/brake_rpt", 1, std::bind(&PacmodInterface::callbackBrakeRpt, this, _1));
107+
shift_rpt_sub_ = create_subscription<pacmod3_msgs::msg::SystemRptInt>(
108+
"/pacmod/shift_rpt", 1, std::bind(&PacmodInterface::callbackGearRpt, this, _1));
109+
turn_rpt_sub_ = create_subscription<pacmod3_msgs::msg::SystemRptInt>(
110+
"/pacmod/turn_rpt", 1, std::bind(&PacmodInterface::callbackTurnRpt, this, _1));
111+
global_rpt_sub_ = create_subscription<pacmod3_msgs::msg::GlobalRpt>(
112+
"/pacmod/global_rpt", 1, std::bind(&PacmodInterface::callbackGlobalRpt, this, _1));
125113

126114
/* publisher */
127115
// To pacmod
@@ -241,24 +229,57 @@ void PacmodInterface::callbackRearDoor(
241229
door_status_pub_->publish(toAutowareDoorStatusMsg(*rear_door_rpt));
242230
}
243231

244-
void PacmodInterface::callbackPacmodRpt(
245-
const pacmod3_msgs::msg::SystemRptFloat::ConstSharedPtr steer_wheel_rpt,
246-
const pacmod3_msgs::msg::WheelSpeedRpt::ConstSharedPtr wheel_speed_rpt,
247-
const pacmod3_msgs::msg::SystemRptFloat::ConstSharedPtr accel_rpt,
248-
const pacmod3_msgs::msg::SystemRptFloat::ConstSharedPtr brake_rpt,
249-
const pacmod3_msgs::msg::SystemRptInt::ConstSharedPtr shift_rpt,
250-
const pacmod3_msgs::msg::SystemRptInt::ConstSharedPtr turn_rpt,
251-
const pacmod3_msgs::msg::GlobalRpt::ConstSharedPtr global_rpt)
232+
void PacmodInterface::callbackSteerWheelRpt(
233+
const pacmod3_msgs::msg::SystemRptFloat::ConstSharedPtr steer_wheel_rpt)
252234
{
253-
is_pacmod_rpt_received_ = true;
235+
is_steer_wheel_rpt_received_ = true;
254236
steer_wheel_rpt_ptr_ = steer_wheel_rpt;
237+
}
238+
239+
void PacmodInterface::callbackWheelSpeedRpt(
240+
const pacmod3_msgs::msg::WheelSpeedRpt::ConstSharedPtr wheel_speed_rpt)
241+
{
242+
is_wheel_speed_rpt_received_ = true;
255243
wheel_speed_rpt_ptr_ = wheel_speed_rpt;
244+
}
245+
246+
void PacmodInterface::callbackAccelRpt(
247+
const pacmod3_msgs::msg::SystemRptFloat::ConstSharedPtr accel_rpt)
248+
{
249+
is_accel_rpt_received_ = true;
256250
accel_rpt_ptr_ = accel_rpt;
251+
}
252+
253+
void PacmodInterface::callbackBrakeRpt(
254+
const pacmod3_msgs::msg::SystemRptFloat::ConstSharedPtr brake_rpt)
255+
{
256+
is_brake_rpt_received_ = true;
257257
brake_rpt_ptr_ = brake_rpt;
258-
gear_cmd_rpt_ptr_ = shift_rpt;
259-
global_rpt_ptr_ = global_rpt;
258+
}
259+
260+
void PacmodInterface::callbackGearRpt(
261+
const pacmod3_msgs::msg::SystemRptInt::ConstSharedPtr gear_rpt)
262+
{
263+
is_shift_rpt_received_ = true;
264+
gear_cmd_rpt_ptr_ = gear_rpt;
265+
}
266+
267+
void PacmodInterface::callbackTurnRpt(
268+
const pacmod3_msgs::msg::SystemRptInt::ConstSharedPtr turn_rpt)
269+
{
270+
is_turn_rpt_received_ = true;
260271
turn_rpt_ptr_ = turn_rpt;
272+
}
261273

274+
void PacmodInterface::callbackGlobalRpt(
275+
const pacmod3_msgs::msg::GlobalRpt::ConstSharedPtr global_rpt)
276+
{
277+
is_global_rpt_received_ = true;
278+
global_rpt_ptr_ = global_rpt;
279+
}
280+
281+
void PacmodInterface::publishVehicleStatus()
282+
{
262283
is_pacmod_enabled_ =
263284
steer_wheel_rpt_ptr_->enabled && accel_rpt_ptr_->enabled && brake_rpt_ptr_->enabled;
264285
RCLCPP_DEBUG(
@@ -293,7 +314,7 @@ void PacmodInterface::callbackPacmodRpt(
293314
autoware_vehicle_msgs::msg::ControlModeReport control_mode_msg;
294315
control_mode_msg.stamp = header.stamp;
295316

296-
if (global_rpt->enabled && is_pacmod_enabled_) {
317+
if (global_rpt_ptr_->enabled && is_pacmod_enabled_) {
297318
control_mode_msg.mode = autoware_vehicle_msgs::msg::ControlModeReport::AUTONOMOUS;
298319
} else {
299320
control_mode_msg.mode = autoware_vehicle_msgs::msg::ControlModeReport::MANUAL;
@@ -344,18 +365,23 @@ void PacmodInterface::callbackPacmodRpt(
344365
{
345366
autoware_vehicle_msgs::msg::TurnIndicatorsReport turn_msg;
346367
turn_msg.stamp = header.stamp;
347-
turn_msg.report = toAutowareTurnIndicatorsReport(*turn_rpt);
368+
turn_msg.report = toAutowareTurnIndicatorsReport(*turn_rpt_ptr_);
348369
turn_indicators_status_pub_->publish(turn_msg);
349370

350371
autoware_vehicle_msgs::msg::HazardLightsReport hazard_msg;
351372
hazard_msg.stamp = header.stamp;
352-
hazard_msg.report = toAutowareHazardLightsReport(*turn_rpt);
373+
hazard_msg.report = toAutowareHazardLightsReport(*turn_rpt_ptr_);
353374
hazard_lights_status_pub_->publish(hazard_msg);
354375
}
355376
}
356377

357378
void PacmodInterface::publishCommands()
358379
{
380+
is_pacmod_rpt_received_ = is_steer_wheel_rpt_received_ && is_wheel_speed_rpt_received_ &&
381+
is_accel_rpt_received_ && is_brake_rpt_received_ &&
382+
is_shift_rpt_received_ && is_turn_rpt_received_ &&
383+
is_global_rpt_received_;
384+
359385
/* guard */
360386
if (!actuation_cmd_ptr_ || !control_cmd_ptr_ || !is_pacmod_rpt_received_ || !gear_cmd_ptr_) {
361387
RCLCPP_INFO_THROTTLE(
@@ -365,6 +391,8 @@ void PacmodInterface::publishCommands()
365391
return;
366392
}
367393

394+
publishVehicleStatus();
395+
368396
const rclcpp::Time current_time = get_clock()->now();
369397

370398
double desired_throttle = actuation_cmd_ptr_->actuation.accel_cmd + accel_pedal_offset_;

0 commit comments

Comments
 (0)