2 Commits

Author SHA1 Message Date
ryleu
7a3c4af1ce remove .envrc sourcing of install 2026-03-18 23:28:49 -05:00
ryleu
5e5a52438d black fmt 2026-03-18 23:22:42 -05:00
6 changed files with 50 additions and 11 deletions

1
.envrc
View File

@@ -1,2 +1 @@
use flake
[[ -d install ]] && source install/setup.$(echo $0 | grep -oE '[^/]+$')

23
flake.lock generated
View File

@@ -60,7 +60,8 @@
"nixpkgs": [
"nix-ros-overlay",
"nixpkgs"
]
],
"treefmt-nix": "treefmt-nix"
}
},
"systems": {
@@ -77,6 +78,26 @@
"repo": "default",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1773297127,
"narHash": "sha256-6E/yhXP7Oy/NbXtf1ktzmU8SdVqJQ09HC/48ebEGBpk=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "71b125cd05fbfd78cab3e070b73544abe24c5016",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
}
},
"root": "root",

View File

@@ -4,6 +4,11 @@
inputs = {
nix-ros-overlay.url = "github:lopsided98/nix-ros-overlay/develop";
nixpkgs.follows = "nix-ros-overlay/nixpkgs"; # IMPORTANT!!!
treefmt-nix = {
url = "github:numtide/treefmt-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
@@ -11,7 +16,8 @@
self,
nix-ros-overlay,
nixpkgs,
}:
...
}@inputs:
nix-ros-overlay.inputs.flake-utils.lib.eachDefaultSystem (
system:
let
@@ -28,7 +34,7 @@
(python313.withPackages (
p: with p; [
pyserial
python-can
python-can
pygame
scipy
crccheck
@@ -62,7 +68,7 @@
moveit-msgs
moveit-ros-planning
moveit-ros-planning-interface
moveit-ros-visualization
moveit-ros-visualization
moveit-configs-utils
moveit-ros-move-group
moveit-servo
@@ -73,7 +79,7 @@
ompl
joy
ros2-controllers
chomp-motion-planner
chomp-motion-planner
];
}
)
@@ -84,6 +90,8 @@
export QT_X11_NO_MITSHM=1
'';
};
formatter = (inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix).config.build.wrapper;
}
);

View File

@@ -318,7 +318,9 @@ class CANConnector(Connector):
}
if mcu_name not in mcu_key_map:
self.logger.error(f"unknown VicCAN mcu_name '{msg.mcu_name}' for CAN frame; dropping message")
self.logger.error(
f"unknown VicCAN mcu_name '{msg.mcu_name}' for CAN frame; dropping message"
)
return
mcu_key = mcu_key_map[mcu_name] & 0b111
@@ -352,7 +354,9 @@ class CANConnector(Connector):
)
command &= 0x3F
arbitration_id = ((mcu_key & 0b111) << 8) | ((data_type_key & 0b11) << 6) | (command & 0x3F)
arbitration_id = (
((mcu_key & 0b111) << 8) | ((data_type_key & 0b11) << 6) | (command & 0x3F)
)
# Map VicCAN.data (floats) to up to 8 CAN data bytes.
raw_bytes: list[int] = []

View File

@@ -1,6 +1,7 @@
from astra_msgs.msg import VicCAN
from rclpy.impl.rcutils_logger import RcutilsLogger
def string_to_viccan(msg: str, mcu_name: str, logger: RcutilsLogger):
"""
Converts the serial string VicCAN format to a ROS2 VicCAN message.
@@ -27,9 +28,7 @@ def string_to_viccan(msg: str, mcu_name: str, logger: RcutilsLogger):
logger.debug(f"got non-CAN data from {mcu_name}: {msg}")
return None
elif len(parts) < 3:
logger.debug(
f"got garbage (not enough parts) CAN data from {mcu_name}: {msg}"
)
logger.debug(f"got garbage (not enough parts) CAN data from {mcu_name}: {msg}")
return None
elif len(parts) > 7:
logger.debug(f"got garbage (too many parts) CAN data from {mcu_name}: {msg}")

8
treefmt.nix Normal file
View File

@@ -0,0 +1,8 @@
{ pkgs, ... }:
{
projectRootFile = "flake.nix";
programs = {
nixfmt.enable = true;
black.enable = true;
};
}