Skip to content

Instantly share code, notes, and snippets.

View mxgrey's full-sized avatar
🦀
Rustacean

Grey mxgrey

🦀
Rustacean
View GitHub Profile
@mxgrey
mxgrey / main.rs
Last active December 11, 2023 15:16
Draft of proposed API usage for async rclrs
fn main() {
// BasicExecutor will be the executor that we provide out-of-the-box from rclrs.
// Using the plain new() constructor for BasicExecutor will create a Context using
// the user's command line arguments.
let mut executor = rclrs::BasicExecutor::new();
// String-like types can be automatically converted into NodeOptions.
let node = executor.create_node("mobility");
// Create a "worker" that manages some data that callbacks associated with this worker
@mxgrey
mxgrey / weird.rs
Last active March 6, 2023 15:11
Strange bug where outlines diverge from their object
use bevy::{
prelude::*,
render::mesh::shape::{Box, UVSphere},
window::close_on_esc,
};
use bevy_mod_outline::*;
#[bevy_main]
fn main() {
#![feature(array_windows)]
use std::f32::consts::PI;
use bevy::{
prelude::*,
render::mesh::{PrimitiveTopology, Indices},
window::close_on_esc,
};
@mxgrey
mxgrey / Cargo.toml
Created February 28, 2023 13:00
z-fighting test for depth bias
[package]
name = "depth_bias_test"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
bevy = "0.9"
@mxgrey
mxgrey / flat.rs
Created February 27, 2023 07:34
Example of a flat mesh being outline by bevy_mod_outline
use std::f32::consts::PI;
use bevy::{
prelude::*,
render::mesh::{PrimitiveTopology, Indices},
window::close_on_esc,
};
use bevy_mod_outline::*;
@mxgrey
mxgrey / optional_trait_bounds.rs
Last active February 19, 2023 06:17
Sketch of optional trait bounds idea for Rust
fn serve_customer<C>(mut customer: &C) -> u32
where
// When a trait bound is wrapped in [], that means it's optional
C: Noisy + [Hungry] + [Thirsty]
{
// Mandatory trait bounds can always be called
let order = customer.talk();
let food_price: u32 = with C as Hungry {
// This block only gets compiled if C implements Hungry.
@mxgrey
mxgrey / gist:ce991a208e367d5a5f9c8617f7463463
Created February 14, 2023 04:56
Automatic Inheritance by Deref
use std::{sync::Arc, ops::Deref};
fn main() {
listen(Arc::new(Foo));
}
fn listen<N: Noisy>(n: N) {
n.noise();
}
#!/bin/bash
. /ros/install/setup.bash
echo "Same host publisher setting is $ROS_AUTOMATIC_DISCOVERY_RANGE, static peers is ${ROS_STATIC_PEERS}"
ROS_AUTOMATIC_DISCOVERY_RANGE=OFF ROS_STATIC_PEERS="" ros2 topic echo --timeout 15 --once /test_topic std_msgs/String > /results/no_discovery_no_static/subscriber &
ROS_AUTOMATIC_DISCOVERY_RANGE=LOCALHOST ROS_STATIC_PEERS="" ros2 topic echo --timeout 15 --once /test_topic std_msgs/String > /results/localhost_no_static/subscriber &
ROS_AUTOMATIC_DISCOVERY_RANGE=SUBNET ROS_STATIC_PEERS="" ros2 topic echo --timeout 15 --once /test_topic std_msgs/String > /results/subnet_no_static/subscriber &
ROS_AUTOMATIC_DISCOVERY_RANGE=OFF ROS_STATIC_PEERS="10.0.0.2" ros2 topic echo --timeout 15 --once /test_topic std_msgs/String > /results/no_discovery_static/subscriber &
ROS_AUTOMATIC_DISCOVERY_RANGE=LOCALHOST ROS_STATIC_PEERS="10.0.0.2" ros2 topic echo --timeout 15 --once /test_topic std_msgs/String > /results/localhost_static/subscriber &
ROS_AUTOMATIC_DISCOVERY_RANGE=SUBNET ROS_
Downloading model:
Name: officechairblack
Owner: openrobotics
Server:
URL: https://fuel.gazebosim.org
Version: 1.0
[Msg] Downloading model [https://fuel.gazebosim.org/openrobotics/models/officechairblack]
[Dbg] [Zip.cc:180] Created file [/home/grey/.ignition/fuel/fuel.gazebosim.org/openrobotics/models/officechairblack/1/meshes/OfficeChairBlack.mtl]
[Dbg] [Zip.cc:180] Created file [/home/grey/.ignition/fuel/fuel.gazebosim.org/openrobotics/models/officechairblack/1/meshes/OfficeChairBlack.obj]
@mxgrey
mxgrey / gist:3bfc5761437f61cc8674663bc3fca923
Created December 11, 2022 03:06
gazebo suggested package list
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
freeglut3 gazebo-common gazebo-plugin-base i965-va-driver intel-media-va-driver libaacs0 libass9 libassimp5 libavcodec58
libavdevice58 libavfilter7 libavformat58 libavutil56 libbdplus0 libbluray2 libbs2b0 libbullet3.06 libchromaprint1
libcodec2-1.0 libconsole-bridge1.0 libdart-collision-bullet6.12 libdart-external-odelcpsolver6.12 libdart-utils6.12
libdart6.12 libdc1394-25 libdecor-0-0 libdecor-0-plugin-1-cairo libdraco4 libfcl0.7 libflite1 libfreeimage3 libgazebo11
libgme0 libgsm1 libigdgmm12 libignition-common3-3 libignition-fuel-tools4-4 libignition-math6-6 libignition-msgs5-5
libignition-transport8-8 libilmbase25 libjxr0 liblilv-0-0 libmfx1 libmysofa1 libnorm1 liboctomap1.9 libode8 libogre-1.9.0v5