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

Make naming more general (for multi-car demos) #3

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions mushr_base/config/joy_teleop.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ teleop:
type: topic
is_default: true
message_type: ackermann_msgs/AckermannDriveStamped
topic_name: /mux/ackermann_cmd_mux/input/teleop
topic_name: mux/ackermann_cmd_mux/input/teleop
message_value:
-
target: drive.speed
Expand All @@ -22,7 +22,7 @@ teleop:
human_control:
type: topic
message_type: ackermann_msgs/AckermannDriveStamped
topic_name: /mux/ackermann_cmd_mux/input/teleop
topic_name: mux/ackermann_cmd_mux/input/teleop
deadman_buttons: [4]
axis_mappings:
-
Expand Down
4 changes: 3 additions & 1 deletion mushr_base/launch/includes/racecar_state.launch
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
<launch>
<arg name="force_in_bounds" default="false"/>
<arg name="tf_prefix" default="" />

<node pkg="mushr_base" type="racecar_state.py" name="racecar_state" output="screen">
<param name="tf_prefix" value="$(arg tf_prefix)" />
<param name="update_rate" value="20.0"/>
<param name="speed_offset" value="0.00"/>
<param name="speed_noise" value="0.0001"/>
Expand All @@ -16,6 +18,6 @@
<param name="theta_offset" value="0.0"/>
<param name="theta_fix_noise" value="0.000001"/>
<param name="force_in_bounds" value="$(arg force_in_bounds)" />
<param name="static_map" value="static_map"/>
<param name="static_map" value="/static_map"/>
</node>
</launch>
28 changes: 14 additions & 14 deletions mushr_base/src/racecar_state.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,25 +28,25 @@ class RacecarState:
def __init__(self):
# speed (rpm) = self.SPEED_TO_ERPM_OFFSET + self.SPEED_TO_ERPM_GAIN * speed (m/s)
self.SPEED_TO_ERPM_OFFSET = float(
rospy.get_param("/vesc/speed_to_erpm_offset", 0.0)
rospy.get_param("vesc/speed_to_erpm_offset", 0.0)
)
self.SPEED_TO_ERPM_GAIN = float(
rospy.get_param("/vesc/speed_to_erpm_gain", 4614.0)
rospy.get_param("vesc/speed_to_erpm_gain", 4614.0)
)

# servo angle = self.STEERING_TO_SERVO_OFFSET + self.STEERING_TO_SERVO_GAIN * steering_angle (rad)
self.STEERING_TO_SERVO_OFFSET = float(
rospy.get_param("/vesc/steering_angle_to_servo_offset", 0.5304)
rospy.get_param("vesc/steering_angle_to_servo_offset", 0.5304)
)
self.STEERING_TO_SERVO_GAIN = float(
rospy.get_param("/vesc/steering_angle_to_servo_gain", -1.2135)
rospy.get_param("vesc/steering_angle_to_servo_gain", -1.2135)
)

# Length of the car
self.CAR_LENGTH = float(rospy.get_param("/vesc/chassis_length", 0.33))
self.CAR_LENGTH = float(rospy.get_param("vesc/chassis_length", 0.33))

# Width of the car
self.CAR_WIDTH = float(rospy.get_param("/vesc/wheelbase", 0.25))
self.CAR_WIDTH = float(rospy.get_param("vesc/wheelbase", 0.25))

# The radius of the car wheel in meters
self.CAR_WHEEL_RADIUS = 0.0976 / 2.0
Expand Down Expand Up @@ -152,10 +152,10 @@ def __init__(self):
self.transformer = tf.TransformListener()

# Publishes joint values
self.state_pub = rospy.Publisher("/car_pose", PoseStamped, queue_size=1)
self.state_pub = rospy.Publisher("car_pose", PoseStamped, queue_size=1)

# Publishes joint values
self.cur_joints_pub = rospy.Publisher("/joint_states", JointState, queue_size=1)
self.cur_joints_pub = rospy.Publisher("joint_states", JointState, queue_size=1)

# Subscribes to the initial pose of the car
self.init_pose_sub = rospy.Subscriber(
Expand All @@ -164,12 +164,12 @@ def __init__(self):

# Subscribes to info about the bldc (particularly the speed in rpm)
self.speed_sub = rospy.Subscriber(
"/vesc/sensors/core", VescStateStamped, self.speed_cb, queue_size=1
"vesc/sensors/core", VescStateStamped, self.speed_cb, queue_size=1
)

# Subscribes to the position of the servo arm
self.servo_sub = rospy.Subscriber(
"/vesc/sensors/servo_position_command", Float64, self.servo_cb, queue_size=1
"vesc/sensors/servo_position_command", Float64, self.servo_cb, queue_size=1
)

# Timer to updates joints and tf
Expand Down Expand Up @@ -277,7 +277,7 @@ def timer_cb(self, event):
self.cur_map_to_odom_lock.acquire()
try:
tmp_trans, tmp_rot = self.transformer.lookupTransform(
"/odom", "/map", rospy.Time(0)
"odom", "/map", rospy.Time(0)
)
self.cur_map_to_odom_trans[0] = tmp_trans[0]
self.cur_map_to_odom_trans[1] = tmp_trans[1]
Expand All @@ -296,7 +296,7 @@ def timer_cb(self, event):
0, 0, self.cur_map_to_odom_rot
),
now,
"/odom",
"odom",
"/map",
)

Expand All @@ -307,7 +307,7 @@ def timer_cb(self, event):
0, 0, self.cur_map_to_odom_rot
),
now,
"/odom",
"odom",
"/map",
)
self.cur_map_to_odom_lock.release()
Expand Down Expand Up @@ -507,7 +507,7 @@ def timer_cb(self, event):

def get_map(self):
# Use the 'static_map' service (launched by MapServer.launch) to get the map
map_service_name = rospy.get_param("~static_map", "static_map")
map_service_name = rospy.get_param("~static_map", "/static_map")
rospy.wait_for_service(map_service_name)
map_msg = rospy.ServiceProxy(map_service_name, GetMap)().map
map_info = map_msg.info # Save info about map for later use
Expand Down