Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
3260fbe
wip: add switch logic
atomon Mar 4, 2025
79462d5
add nebula to the workspace
hakuturu583 Mar 4, 2025
2e36f3d
update clone package
hakuturu583 Mar 4, 2025
c010f2e
update playbook
hakuturu583 Mar 4, 2025
7cbc5f7
remove perception_server
hakuturu583 Mar 4, 2025
dd7b3c5
update playbook
hakuturu583 Mar 4, 2025
6deea11
update playbook
hakuturu583 Mar 4, 2025
c18a981
remove simulation package
hakuturu583 Mar 4, 2025
1b538fb
specify worker
hakuturu583 Mar 4, 2025
5a9447f
change branch
hakuturu583 Mar 4, 2025
ed96f86
add joy controller
hakuturu583 Mar 4, 2025
f5ec61e
add debug line
hakuturu583 Mar 4, 2025
52964af
use new type
hakuturu583 Mar 4, 2025
c761041
remove unused class
hakuturu583 Mar 4, 2025
91f294a
use new message
hakuturu583 Mar 4, 2025
41e5939
modify endpoint
hakuturu583 Mar 4, 2025
7a0cb11
fix logic
hakuturu583 Mar 4, 2025
7d9371d
remove debug line
hakuturu583 Mar 4, 2025
cb70c07
add joy controller class
hakuturu583 Mar 4, 2025
7e1d46a
add debug line
hakuturu583 Mar 4, 2025
05eba20
enable change mode
hakuturu583 Mar 4, 2025
ee1305e
mode switch
atomon Mar 4, 2025
2abfd9f
stop motor heartbeat
hakuturu583 Mar 4, 2025
560e4ff
update proto message
hakuturu583 Mar 4, 2025
be0c933
enable set mode function
hakuturu583 Mar 4, 2025
8c9df4c
add debug line
hakuturu583 Mar 4, 2025
5eeb2e3
update endpoint
hakuturu583 Mar 4, 2025
e5ea712
set mode in motor command
hakuturu583 Mar 4, 2025
7fa4a2d
instanciate udp some times
hakuturu583 Mar 4, 2025
ade8c44
update schema
hakuturu583 Mar 4, 2025
3e8085e
update proto
hakuturu583 Mar 4, 2025
4d5742c
remove unused function
hakuturu583 Mar 4, 2025
178dae0
fix error
hakuturu583 Mar 4, 2025
c01236d
simplify code
hakuturu583 Mar 4, 2025
80c7a6d
simplify code
hakuturu583 Mar 4, 2025
da5855c
simplify code
hakuturu583 Mar 4, 2025
47f1671
remove scheduler
hakuturu583 Mar 4, 2025
cdd3023
remove heartbeat timeout
hakuturu583 Mar 4, 2025
3d611e4
remove ground timeout check
hakuturu583 Mar 4, 2025
c2e5370
simplify class
hakuturu583 Mar 4, 2025
ce56c52
simplifyied sample code
hakuturu583 Mar 4, 2025
29929b2
use asyncio
hakuturu583 Mar 5, 2025
4dc7455
modify socket option
hakuturu583 Mar 5, 2025
a42f9a9
modify message
hakuturu583 Mar 5, 2025
a63ef52
enable send command
hakuturu583 Mar 5, 2025
8e7b82c
refactor code
hakuturu583 Mar 5, 2025
06b1c97
fix ground station
hakuturu583 Mar 5, 2025
7b49dc7
use AWS
hakuturu583 Mar 5, 2025
31f9099
update sample code
hakuturu583 Mar 5, 2025
ea97f5e
simplify test code
hakuturu583 Mar 5, 2025
0d2c6a7
delete heartbeat
atomon Mar 5, 2025
3a030e5
feat: apply joy stick data
atomon Mar 5, 2025
64ab3d5
add forward script
hakuturu583 Mar 5, 2025
5daf341
Merge branch 'master' of https://github.com/OUXT-Polaris/ouxt_automat…
hakuturu583 Mar 5, 2025
5d0dfdd
Merge branch 'fix/mqtt_endpoint' of https://github.com/OUXT-Polaris/o…
hakuturu583 Mar 5, 2025
02d0353
add argparse
hakuturu583 Mar 5, 2025
6888f0a
add argparse
hakuturu583 Mar 5, 2025
110c155
fix typo
hakuturu583 Mar 5, 2025
d53d79c
use docker compose for udp forward
hakuturu583 Mar 5, 2025
9827e9d
update dockerfile
hakuturu583 Mar 5, 2025
2d0341c
fix: import path
atomon Mar 5, 2025
a69f286
feat: serial print
atomon Mar 5, 2025
a0d554d
add default
atomon Mar 5, 2025
d5ad7b0
update Dockerfile
hakuturu583 Mar 5, 2025
117478c
update docker compose
hakuturu583 Mar 5, 2025
d30745d
Merge branch 'Feat/switch_auto_man' into fix/mqtt_endpoint
atomon Mar 5, 2025
c9440c1
fix: manual mode
atomon Mar 5, 2025
9ad4b35
add udp_forwarder package
hakuturu583 Mar 5, 2025
41654b3
update directory
hakuturu583 Mar 5, 2025
6929bed
add new python package
hakuturu583 Mar 5, 2025
f3f2de4
remove apk install step
hakuturu583 Mar 5, 2025
6f11828
remove network_mode
hakuturu583 Mar 5, 2025
d901c13
update docker compose
hakuturu583 Mar 5, 2025
c41bfdc
update address
hakuturu583 Mar 5, 2025
b00f824
use github actions to build image
hakuturu583 Mar 5, 2025
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
17 changes: 16 additions & 1 deletion .github/workflows/docker/mqtt_endpoint/docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,21 @@
version: "3.8"
services:
mqtt_endpoint:
# mqtt_endpoint:
# image: wamvtan/mqtt_endpoint:latest
# network_mode: host
# restart: always
udp_forward_right_motor:
image: wamvtan/mqtt_endpoint:latest
network_mode: host
restart: always
command: ["uv", "run", "udp_forward", "192.168.0.101", "8888", "--listen_port", "9001"]
udp_forward_left_motor:
image: wamvtan/mqtt_endpoint:latest
network_mode: host
restart: always
command: ["uv", "run", "udp_forward", "192.168.0.102", "8888", "--listen_port", "9002"]
udp_forward_estop:
image: wamvtan/mqtt_endpoint:latest
network_mode: host
restart: always
command: ["uv", "run", "udp_forward", "192.168.0.103", "4000", "--listen_port", "9003"]
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
protoc -I=$PWD/proto --python_out=. $PWD/proto/hardware_communication_msgs__HeartBeat.proto
protoc -I=$PWD/proto --python_out=. $PWD/proto/hardware_communication_msgs__MotorControl.proto
protoc -I=$PWD/proto --python_out=. $PWD/proto/ground_station_heartbeat.proto

Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
from mqtt_endpoint.ground_station_heartbeat_pb2 import (
ground_station_heartbeat,
)
import joy_controller as joy
from mqtt_endpoint.joy_controller import JoyController
from google.protobuf.json_format import MessageToJson


def on_connect(client, userdata, flags, rc):
Expand All @@ -22,57 +23,73 @@ def main():
left_motor_control_topic = "miniv/left_motor"
left_motor_command = hardware_communication_msgs__MotorControl()
left_motor_command.motor_enable = True

right_motor_control_topic = "miniv/right_motor"
right_motor_command = hardware_communication_msgs__MotorControl()
right_motor_command.motor_enable = True

groundstation_heartbeat_topic = "ground_station/heartbeat"
heartbeat_command = ground_station_heartbeat()

joy_controller = JoyController()

broker = "54.212.20.15"
port = 1883
client = mqtt.Client()

keep_alive_timeout = 1

# keep_alive_timeout = 1

try:
client.connect(broker, port, keep_alive_timeout)
client.connect(broker, port)
client.on_connect = on_connect
client.loop_start()
time.sleep(1)

sequence = 0
sequence = 1
while True:
if not client.is_connected():
break

left_motor_command.motor_speed = joy.get_stick_left_y()
right_motor_command.motor_speed = joy.get_stick_right_y()
heartbeat_command.sequence = sequence = sequence + 1
heartbeat_command.mode = joy.get_mode()

joy_controller.update()
left_motor_command.motor_speed = joy_controller.stick_ly
right_motor_command.motor_speed = joy_controller.stick_ry
heartbeat_command.sequence = sequence
sequence = sequence + 1
heartbeat_command.mode = joy_controller.mode
right_motor_command.mode = joy_controller.mode
left_motor_command.mode = joy_controller.mode
# if heartbeat_command.mode == 0:
# print("mode : AUTO")
# elif heartbeat_command.mode == 1:
# print("mode : MANUAL")
# elif heartbeat_command.mode == 2:
# print("mode : ESTOP")
client.publish(
left_motor_control_topic, left_motor_command.SerializeToString()
left_motor_control_topic, left_motor_command.SerializeToString(), qos=0
)
client.publish(
right_motor_control_topic, right_motor_command.SerializeToString()
right_motor_control_topic,
right_motor_command.SerializeToString(),
qos=0,
)
client.publish(
groundstation_heartbeat_topic,
heartbeat_command.SerializeToString(),
qos=0,
)
# TODO Fill heartbeat topic from joystick button input.
# if the user press Emergency stop button, fill "EMERGENCY" instead of "AUTO"
client.publish(groundstation_heartbeat_topic, "AUTO")
time.sleep(0.05)
except KeyboardInterrupt:
print("Exiting...")
except Exception as e:
print(e)
finally:
left_motor_command.motor_speed = 0
client.publish(left_motor_control_topic, left_motor_command.SerializeToString())
client.publish(
left_motor_control_topic, left_motor_command.SerializeToString(), qos=0
)
right_motor_command.motor_speed = 0
client.publish(
right_motor_control_topic, right_motor_command.SerializeToString()
right_motor_control_topic, right_motor_command.SerializeToString(), qos=0
)
client.loop_stop()
client.disconnect()
Expand Down

This file was deleted.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

This file was deleted.

Loading
Loading