Skip to content

edisimo/cobra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cobra Flex

Mobile robot Cobra Flex with raspberry pi as its main brain communicating via serial with the car.

Projects

Directory Description
pi-udp-2-cobra-usb/ C++ service running on the RPi — bridges UDP ↔ serial USB
cobra-client/ Python GUI client for sending commands / viewing feedback
scripts/ Utility scripts (serial probing, testing)
cobra_info/ Protocol reference (command list)

pi-udp-2-cobra-usb

Dependencies

sudo apt-get install cmake g++ libyaml-cpp-dev nlohmann-json3-dev
# For tests:
sudo apt-get install libgtest-dev

Build

cd pi-udp-2-cobra-usb
mkdir build && cd build
cmake ..
make -j$(nproc)

Run (manual)

./cobraflex-interface /path/to/config.yaml

Build .deb & install

cd build
cpack
sudo dpkg -i cobraflex-interface-*.deb

The service starts automatically. Config lives at /etc/cobraflex/config.yaml.

Uninstall

sudo dpkg -r cobraflex-interface     # keeps config
sudo dpkg -P cobraflex-interface     # purge (removes /etc/cobraflex)

Service management

sudo systemctl status cobraflex-interface
sudo systemctl restart cobraflex-interface
sudo journalctl -u cobraflex-interface -f   # live logs

Notes

  • Single UDP port (default 5000) for both commands and feedback — feedback replies go to the last client that sent a command.
  • Motor commands (T:1, T:11) are automatically repeated while speed ≠ 0.
  • See docs/architecture.md for internals.

cobra-client

Run

cd cobra-client
pip install -r requirements.txt   # just pyyaml, tkinter is built-in
python3 cobra_client.py
# or with a config:
python3 cobra_client.py --config client_config.yaml

See cobra-client/README.md for details.

Connection

Wifi & Ethernet

First time wifi setup

sudo raspi-config nonint do_wifi_country SK
sudo nmcli radio wifi on
sudo nmcli dev wifi list
sudo nmcli dev wifi connect "YOUR_SSID" password "YOUR_PASSWORD"

Change wifi

run nmcli connection show, you will see something like:

OldWiFi
MyPhone
Wired connection 1

then

sudo nmcli dev wifi connect "NEW_SSID" password "NEW_PASSWORD"
sudo nmcli connection delete "OldWiFi"

Or

sudo nmcli connection add type wifi con-name "LabWiFi" ifname wlan0 ssid "LabWiFi"
sudo nmcli connection modify "LabWiFi" wifi-sec.key-mgmt wpa-psk
sudo nmcli connection modify "LabWiFi" wifi-sec.psk "labpassword123"
sudo nmcli connection modify "LabWiFi" connection.autoconnect yes

Some debug options

sudo nmcli dev wifi rescan # When cant connect to wifi
nmcli dev wifi list # List wifis 

Raspberry setup

TODO: from different pc

Serial

Main commands

About

mobile robot called Cobra Flex and all its nuances

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors