上限300件あるので、
RSSコードを埋め込んで、RSSが値を取得した後に、RSS式を値に変換する。
これを300内で繰り返すとボタン1度の押下げで処理できる。
たぶん、C#などで作った方が簡単だと思う。
このサンプル(C#)で楽天RSSできた。https://1drv.ms/u/s!ApO4wsxFJBbVt1i7MlyJxAnSxZoC?e=ffOmxF
www2s.biglobe.ne.jp
上限300件あるので、
RSSコードを埋め込んで、RSSが値を取得した後に、RSS式を値に変換する。
これを300内で繰り返すとボタン1度の押下げで処理できる。
たぶん、C#などで作った方が簡単だと思う。
このサンプル(C#)で楽天RSSできた。https://1drv.ms/u/s!ApO4wsxFJBbVt1i7MlyJxAnSxZoC?e=ffOmxF
www2s.biglobe.ne.jp
照明
会社案内 | E・Hトーホク 足立区の電気屋さん イーエイチトーホク 電話でない
五反野の電気屋エーワン タニグチ | コンセント交換からリフォームまで何でもご相談ください やってない
ワイズ電気 webとい合わせ
アイディケイ紹介 WEB問い合わせ
7福電気 6万
110番 1万+(5k*個数) -5k =35k(税別): 3939高橋
電気工事店リスト
お近くの電気工事店検索
小屋
お助け本舗 足立西新井店 7.5
便利屋あさいち
シーナECOステーション
プライバシーポリシー | 便利屋 東京あさいち【安い格安便利屋安心サービス1番の便利屋】
小屋 問い合わせ中
解決本舗
benriyasan.org
東京ベンリーズ
・水道 配管
アミタ
[コロナ発生を隠蔽した病院]
台東区の永寿総合病院
中野江古田病院
日中電池比較
http://nakajima-so.ddo.jp/~bunbun/radio/battery
转换器2号转5号
電池スペーサー
5号を1号
https://world.taobao.com/item/530608946683.htm?spm=a312a.7700714.0.0.LaN2dO#detail
https://world.tmall.com/item/41921362187.htm?spm=a312a.7700714.0.0.AFNLKF
電池5号を2号に変換する器具です。4個で8.8元と思います。
https://world.taobao.com/item/530566327673.htm?spm=a312a.7700714.0.0.IShV1U#detail
import torchvision
import torch
model = torchvision.models.resnet18(pretrained=False)
model.fc = torch.nn.Linear(512, 2)
model.load_state_dict(torch.load('best_steering_model_xy.pth'))
device = torch.device('cuda')
model = model.to(device)
model = model.eval().half()
import torchvision.transforms as transforms
import torch.nn.functional as F
#import cv2
import PIL.Image
import numpy as np
import math
from IPython.display import display
import traitlets
#from jetbot import Camera, bgr8_to_jpeg
#from jetbot import Robot
mean = torch.Tensor([0.485, 0.456, 0.406]).cuda().half()
std = torch.Tensor([0.229, 0.224, 0.225]).cuda().half()
angle = 0.0
angle_last = 0.0
def preprocess(image):
#image = PIL.Image.fromarray(image)
image = transforms.functional.to_tensor(image).to(device).half()
image.sub_(mean[:, None, None]).div_(std[:, None, None])
return image[None, ...]
def execute(image):
global angle, angle_last
xy = model(preprocess(image)).detach().float().cpu().numpy().flatten()
x = xy[0]
y = (0.5 - xy[1]) / 2.0
x_slider_value = x
y_slider_value = y
# この値からPID+BIASを足し引きしてモーター値とする
speed_slider_value = 0.2#speed_gain_slider_value
steering_gain_slider_value = 0.2 # 左右の係数
steering_dgain_slider_value = 0.1 # 加速度にかける係数
steering_bias_slider_value = 0 # 最後にタス
try :
angle = np.arctan2(x, y)
deg = math.degrees(angle)
pid = angle * steering_gain_slider_value \
+ (angle - angle_last)* steering_dgain_slider_value
angle_last = angle
steering_slider_value = pid + steering_bias_slider_value
left_value = max(min(speed_slider_value + steering_slider_value, 1.0), 0.0)
robot.left_motor.value = left_value
robot.right_motor.value = max(min(speed_slider_value - steering_slider_value, 1.0), 0.0)
except Exception as e:
print(e)
def main():
#image = PIL.Image.open('dataset_xy/xy_061_054_58.jpg')
image = PIL.Image.open('dataset_xy/xy_054_068.jpg')
execute(image)
if __name__ == "__main__":
main()
import torchvision
import torch
model = torchvision.models.resnet18(pretrained=False)
model.fc = torch.nn.Linear(512, 2)
model.load_state_dict(torch.load('best_steering_model_xy.pth'))
device = torch.device('cuda')
model = model.to(device)
model = model.eval().half()
import torchvision.transforms as transforms
import torch.nn.functional as F
import cv2
import PIL.Image
import numpy as np
mean = torch.Tensor([0.485, 0.456, 0.406]).cuda().half()
std = torch.Tensor([0.229, 0.224, 0.225]).cuda().half()
def preprocess(image):
image = PIL.Image.fromarray(image)
image = transforms.functional.to_tensor(image).to(device).half()
image.sub_(mean[:, None, None]).div_(std[:, None, None])
return image[None, ...]
from IPython.display import display
import ipywidgets
import traitlets
from jetbot import Camera, bgr8_to_jpeg
camera = Camera()
image_widget = ipywidgets.Image()
traitlets.dlink*1
display(x_slider, steering_slider)
angle = 0.0
angle_last = 0.0
def execute(change):
global angle, angle_last
image = change['new']
xy = model(preprocess(image)).detach().float().cpu().numpy().flatten()
x = xy[0]
y = (0.5 - xy[1]) / 2.0
x_slider.value = x
y_slider.value = y
speed_slider.value = speed_gain_slider.value
angle = np.arctan2(x, y)
pid = angle * steering_gain_slider.value + (angle - angle_last) * steering_dgain_slider.value
angle_last = angle
steering_slider.value = pid + steering_bias_slider.value
robot.left_motor.value = max(min(speed_slider.value + steering_slider.value, 1.0), 0.0)
robot.right_motor.value = max(min(speed_slider.value - steering_slider.value, 1.0), 0.0)
execute({'new': camera.value})
camera.observe(execute, names='value')
*1:camera, 'value'), (image_widget, 'value'), transform=bgr8_to_jpeg) display(image_widget) from jetbot import Robot robot = Robot() speed_gain_slider = ipywidgets.FloatSlider(min=0.0, max=1.0, step=0.01, description='speed gain') steering_gain_slider = ipywidgets.FloatSlider(min=0.0, max=1.0, step=0.01, value=0.2, description='steering gain') steering_dgain_slider = ipywidgets.FloatSlider(min=0.0, max=0.5, step=0.001, value=0.0, description='steering kd') steering_bias_slider = ipywidgets.FloatSlider(min=-0.3, max=0.3, step=0.01, value=0.0, description='steering bias') display(speed_gain_slider, steering_gain_slider, steering_dgain_slider, steering_bias_slider) x_slider = ipywidgets.FloatSlider(min=-1.0, max=1.0, description='x') y_slider = ipywidgets.FloatSlider(min=0, max=1.0, orientation='vertical', description='y') steering_slider = ipywidgets.FloatSlider(min=-1.0, max=1.0, description='steering') speed_slider = ipywidgets.FloatSlider(min=0, max=1.0, orientation='vertical', description='speed') display(ipywidgets.HBox([y_slider, speed_slider]
参考になる。
masato-ka.hatenablog.com