mirror of
https://github.com/OSURoboticsClub/Rover_2017_2018.git
synced 2025-11-08 18:21:15 +00:00
Some more modifications to drive sender so things are a little smoother. Works well now. Changed update rates for control systems.
This commit is contained in:
@@ -11,7 +11,7 @@ launch_dir_length_without_current_folder=$(($launch_dir_length-$current_folder_n
|
|||||||
script_launch_path="${launch_dir:0:$launch_dir_length_without_current_folder}/src"
|
script_launch_path="${launch_dir:0:$launch_dir_length_without_current_folder}/src"
|
||||||
cd $script_launch_path
|
cd $script_launch_path
|
||||||
|
|
||||||
sleep 5
|
sleep 3
|
||||||
|
|
||||||
export DISPLAY=:0
|
export DISPLAY=:0
|
||||||
python ground_station.py
|
python ground_station.py
|
||||||
@@ -19,8 +19,8 @@ DEFAULT_DRIVE_COMMAND_TOPIC = "/rover_control/command_control/ground_station_dri
|
|||||||
|
|
||||||
DRIVE_COMMAND_HERTZ = 15
|
DRIVE_COMMAND_HERTZ = 15
|
||||||
|
|
||||||
Y_AXIS_DEADBAND = 0.025
|
Y_AXIS_DEADBAND = 0.05
|
||||||
X_AXIS_DEADBAND = 0.025
|
X_AXIS_DEADBAND = 0.05
|
||||||
|
|
||||||
THROTTLE_MIN = 0.05
|
THROTTLE_MIN = 0.05
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ DEFAULT_RIGHT_BOGIE_TOPIC = "drive_control/right"
|
|||||||
|
|
||||||
UINT16_MAX = 65535
|
UINT16_MAX = 65535
|
||||||
|
|
||||||
DEFAULT_HERTZ = 20
|
DEFAULT_HERTZ = 30
|
||||||
|
|
||||||
WATCHDOG_TIMEOUT = 0.3
|
WATCHDOG_TIMEOUT = 0.3
|
||||||
|
|
||||||
|
|||||||
@@ -29,11 +29,13 @@ DEFAULT_DRIVE_CONTROL_STATUS_TOPIC = "drive_status/rear"
|
|||||||
FIRST_MOTOR_ID = 1
|
FIRST_MOTOR_ID = 1
|
||||||
SECOND_MOTOR_ID = 2
|
SECOND_MOTOR_ID = 2
|
||||||
|
|
||||||
COMMUNICATIONS_TIMEOUT = 0.15 # Seconds
|
COMMUNICATIONS_TIMEOUT = 0.01 # Seconds
|
||||||
|
|
||||||
RX_DELAY = 0.01
|
RX_DELAY = 0.01
|
||||||
TX_DELAY = 0.01
|
TX_DELAY = 0.01
|
||||||
|
|
||||||
|
DEFAULT_HERTZ = 20
|
||||||
|
|
||||||
MODBUS_REGISTERS = {
|
MODBUS_REGISTERS = {
|
||||||
"DIRECTION": 0,
|
"DIRECTION": 0,
|
||||||
"SPEED": 1,
|
"SPEED": 1,
|
||||||
@@ -71,6 +73,8 @@ class DriveControl(object):
|
|||||||
|
|
||||||
self.drive_control_status_topic = rospy.get_param("~drive_control_status_topic", DEFAULT_DRIVE_CONTROL_STATUS_TOPIC)
|
self.drive_control_status_topic = rospy.get_param("~drive_control_status_topic", DEFAULT_DRIVE_CONTROL_STATUS_TOPIC)
|
||||||
|
|
||||||
|
self.wait_time = 1.0 / rospy.get_param("~hertz", DEFAULT_HERTZ)
|
||||||
|
|
||||||
self.first_motor = minimalmodbus.Instrument(self.port, FIRST_MOTOR_ID)
|
self.first_motor = minimalmodbus.Instrument(self.port, FIRST_MOTOR_ID)
|
||||||
self.second_motor = minimalmodbus.Instrument(self.port, SECOND_MOTOR_ID)
|
self.second_motor = minimalmodbus.Instrument(self.port, SECOND_MOTOR_ID)
|
||||||
self.__setup_minimalmodbus_for_485()
|
self.__setup_minimalmodbus_for_485()
|
||||||
@@ -98,9 +102,18 @@ class DriveControl(object):
|
|||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
while not rospy.is_shutdown():
|
while not rospy.is_shutdown():
|
||||||
|
start_time = time()
|
||||||
|
|
||||||
|
try:
|
||||||
self.send_drive_control_message()
|
self.send_drive_control_message()
|
||||||
self.get_drive_status()
|
self.get_drive_status()
|
||||||
sleep(0.005)
|
|
||||||
|
except Exception, error:
|
||||||
|
print "Error occurred:", error
|
||||||
|
|
||||||
|
time_diff = time() - start_time
|
||||||
|
|
||||||
|
sleep(max(self.wait_time - time_diff, 0))
|
||||||
|
|
||||||
def send_drive_control_message(self):
|
def send_drive_control_message(self):
|
||||||
if self.new_control_message:
|
if self.new_control_message:
|
||||||
|
|||||||
@@ -4,5 +4,5 @@
|
|||||||
<include file="$(find rover_main)/launch/ground_station/topic_transport_receivers.launch"/>
|
<include file="$(find rover_main)/launch/ground_station/topic_transport_receivers.launch"/>
|
||||||
|
|
||||||
<!-- ########## Start Ground Station Interface ########## -->
|
<!-- ########## Start Ground Station Interface ########## -->
|
||||||
<node name="ground_station" pkg="ground_station" type="ground_station_launch.sh" output="screen"/>
|
<node name="ground_station" pkg="ground_station" type="ground_station_launch.sh" required="true" output="screen"/>
|
||||||
</launch>
|
</launch>
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
<group ns="rover_control">
|
<group ns="rover_control">
|
||||||
<node name="iris_controller" pkg="rover_control" type="iris_controller.py" output="screen">
|
<node name="iris_controller" pkg="rover_control" type="iris_controller.py" output="screen">
|
||||||
<param name="port" value="/dev/rover/ttyIRIS"/>
|
<param name="port" value="/dev/rover/ttyIRIS"/>
|
||||||
<param name="hertz" value="14"/>
|
<param name="hertz" value="20"/>
|
||||||
</node>
|
</node>
|
||||||
|
|
||||||
<node name="rear_bogie" pkg="rover_control" type="drive_control.py" output="screen">
|
<node name="rear_bogie" pkg="rover_control" type="drive_control.py" output="screen">
|
||||||
|
|||||||
Reference in New Issue
Block a user