Skip to content

Commit 39764f6

Browse files
authored
Update gem_hardware.py
1 parent 45da0a3 commit 39764f6

1 file changed

Lines changed: 22 additions & 2 deletions

File tree

GEMstack/onboard/interface/gem_hardware.py

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
from tf.transformations import euler_from_quaternion, quaternion_from_euler
2121

2222
# GEM PACMod Headers
23-
from pacmod_msgs.msg import PositionWithSpeed, PacmodCmd, SystemRptFloat, VehicleSpeedRpt, GlobalRpt
23+
from pacmod_msgs.msg import PositionWithSpeed, PacmodCmd, SystemRptFloat, VehicleSpeedRpt, GlobalRpt, SystemRptInt
2424

2525
# OpenCV and cv2 bridge
2626
import cv2
@@ -49,6 +49,7 @@ def __init__(self):
4949
self.speed_sub = rospy.Subscriber("/pacmod/parsed_tx/vehicle_speed_rpt", VehicleSpeedRpt, self.speed_callback)
5050
self.steer_sub = rospy.Subscriber("/pacmod/parsed_tx/steer_rpt", SystemRptFloat, self.steer_callback)
5151
self.global_sub = rospy.Subscriber("/pacmod/parsed_tx/global_rpt", GlobalRpt, self.global_callback)
52+
self.gear_sub = rospy.Subscriber("/pacmod/parsed_tx/shift_rpt", SystemRptInt, self.geer_callback)
5253
self.gnss_sub = None
5354
self.imu_sub = None
5455
self.front_radar_sub = None
@@ -125,6 +126,18 @@ def speed_callback(self,msg : VehicleSpeedRpt):
125126

126127
def steer_callback(self, msg):
127128
self.last_reading.steering_wheel_angle = msg.output
129+
130+
def geer_callback(self, msg):
131+
# map pacmod gear to gear in vehicle state
132+
if msg.output == 2:
133+
# Neutral
134+
self.last_reading.gear = 0
135+
elif msg.output == 1:
136+
# Reverse
137+
self.last_reading.gear = -1
138+
else:
139+
#Forward
140+
self.last_reading.gear = 1
128141

129142
def global_callback(self, msg):
130143
self.faults = []
@@ -317,7 +330,14 @@ def send_command(self, command : GEMVehicleCommand):
317330
self.accel_cmd.clear = False
318331
self.accel_cmd.ignore = False
319332

320-
self.gear_cmd.ui16_cmd = PacmodCmd.SHIFT_FORWARD
333+
#switch gear
334+
if command.gear == -1:
335+
self.gear_cmd.ui16_cmd = PacmodCmd.SHIFT_REVERSE
336+
elif command.gear == 1:
337+
self.gear_cmd.ui16_cmd = PacmodCmd.SHIFT_FORWARD
338+
else:
339+
self.gear_cmd.ui16_cmd = PacmodCmd.SHIFT_NEUTRAL
340+
321341
self.gear_cmd.enable = True
322342
self.gear_pub.publish(self.gear_cmd)
323343
self.accel_pub.publish(self.accel_cmd)

0 commit comments

Comments
 (0)